[#81492] [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid — normalperson@...

Issue #13618 has been reported by normalperson (Eric Wong).

12 messages 2017/06/01

[ruby-core:81622] [Ruby trunk Bug#13040] syslog/logger uses "require 'logger'" which is interpreted as circular dependency

From: lemsx1@...
Date: 2017-06-08 15:46:34 UTC
List: ruby-core #81622
Issue #13040 has been updated by lemsx1 (Luis Mondesi).


Ok, I was able to reproduce this now.

1. create a new Rails Project
2. create an initializer under configs/initializer named "delayed_job.rb" with:

require 'syslog/logger'

Delayed::Worker.delay_jobs = !Rails.env.test?
Delayed::Worker.logger = Rails.logger

# hack to reopen syslog in local1
Syslog::Logger.syslog.close
Syslog::Logger.syslog = Syslog.open('bmanage', Syslog::LOG_ODELAY, Syslog::LOG_LOCAL1)

3. run bin/rake test or bundle exec rake test

Essentially, this was required with older libraries of Syslog::Logger. Now that Syslog::Logger allows one to change facility when initializing an instance, there is no need for this code.

After removing this code, the bug went away!

You can now close this issue. 

----------------------------------------
Bug #13040: syslog/logger uses "require 'logger'" which is interpreted as circular dependency 
https://bugs.ruby-lang.org/issues/13040#change-65320

* Author: lemsx1 (Luis Mondesi)
* Status: Feedback
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
while using the 'syslog/logger' require from Ruby it works well, however if one tries to use it via "test" it complaints about circular require and the constant "Logger" not defined. After a little digging, I realized that 'syslog/logger' has a line that says require 'logger' which could mean itself!

The fix is to use require_relative '../logger' as this is what it intends in order to piggy back on Logger:

Current code for syslog/logger:

1. # frozen_string_literal: false
2. require 'syslog'
3. require 'logger'

Fixed code:

1. # frozen_string_literal: false
2. require 'syslog'
3. require_relative '../logger'



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next