On 07/24 01:25, Eric Wong wrote: > Jeremy Evans <c...@jeremyevans.net> wrote: > > Running with GC.stress didn't catch the error for me. But I'm using a > > fairly old compiler (GCC 4.2.1, the OpenBSD default), so this may be > > something that only shows up on a newer compiler that does more > > optimizations. > > Pere: just curious if you've had a chance to test my patch for > sequel_pg from Jeremy's latest sequel_pg.git > > In any case, I'm certain my patch fixes a bug which manifests > in a compiler-dependent manner; but here could always be other > bugs in a similar vein. Thanks.
I can't get it to crash with sequel_pg 1.7.0 when compiled using clang 4.0.0 either. I even tried to build a special program designed to trigger the crash. Compiler used: $ cc -v OpenBSD clang version 4.0.0 (tags/RELEASE_400/final) (based on LLVM 4.0.0) Target: amd64-unknown-openbsd6.1 Thread model: posix InstalledDir: /usr/bin Program used: require 'sequel' DB = Sequel.postgres(:test=>false) DB.extension :pg_array # pg_array.txt contains ([[1] * 100] * 100) in PostgreSQL array format t = File.read('pg_array.txt') dot = '.' trap(:HUP){} Thread.new do while true sleep 1 Process.kill(:HUP, $$) end end GC.stress = true (0..2).map do Thread.new do i = 0 pr = lambda{|v| print dot if ((i+=1) % 100) == 0; "#{v}#{v}"} while true print 'L' Sequel::Postgres.parse_pg_array(t.dup, pr) end end end.map(&:join) Pere, can you test this program and see if it crashes in your environment? If not, can you put together a reproducible example that does crash in your environment? Thanks, Jeremy -- unsubscribe: unicorn-public+unsubscr...@bogomips.org archive: https://bogomips.org/unicorn-public/