From: BG - Ben Armstrong Date: 2005-05-27T01:52:40+09:00 Subject: Re: shim for select() for VMS & general porting questions Nobu, > Moved all to vmsruby_private.[ch]. Does this work? First, I think our problem is bigger than this pair of files. I know Masamichi was making *all* of his commits to the stable tree, which I agree is not the usual thing to do, and should be fixed. Shouldn't we take care to ensure all of the changes he committed to this branch are merged into HEAD before proceeding with further patches? Second, before I try your new patch I think I should mention we encountered two problems with your earlier patch when we tried to exercise code that actually does select() on sockets. In our earlier test it appeared that the threads deadlocked and the deadlock condition was not detected. I think this is more than just bad luck because the problem was completely reproducible. Also, just a short while ago when we exercised this code again, instead of a deadlock, it threw a "Bus Error": A:002000> ruby newfiles.new DYMA newfiles.new:128: [BUG] Bus Error ruby 1.8.2 (2004-12-16) [alpha-vms] The stack dump (edited) includes these relevant lines: RUBYSHR VMS rb_vms_select 13135 0000000000001064 000000000013EF54 RUBYSHR EVAL rb_thread_schedule 23455 00000000000198C4 00000000000BE5C4 RUBYSHR IO appendline 16807 0000000000002838 00000000000E0D48 The code exerpt this happens in is as follows: 126 File.open(dirFilename) do |input| 127 $stderr.puts "open" 128 input.each do |line| 129 $stderr.puts "line: #{line}" 130 yield line 131 end 132 end Since your new patch didn't substantially change, I expect it will have the same bug. I unfortunately do not yet have a minimal failing test case, but I'll try to make do with what we have so far to figure out what's happening here. Ben