That was it! Thank you very much. I downgraded to Postgres 11 and I'll see 
about reporting the issue with Postgres 12.


On Tuesday, October 15, 2019 at 1:01:14 PM UTC-4, Jeremy Evans wrote:
>
> On Monday, October 14, 2019 at 11:28:03 PM UTC-7, Corey Csuhta wrote:
>>
>> Hey all:
>>
>> I have a reproduceable Ruby segfault when I use Puma, Sequel, and 
>> Postgres together in MacOS Catalina. 
>>
>> I have this code in my Puma config:
>>
>> before_fork do
>>   ::Sequel::DATABASES.each(&:disconnect)
>> end
>>
>> That block runs correctly and the Puma workers boot, but as soon as I try 
>> to send any requests to one of the workers, Sequel segfaults trying to 
>> reconnect to the database in the worker process.
>>
>> This doesn't happen if I use Webrick, and it doesn't happen if I 
>> dis/connect databases in a Rake task or with Sequel on the Ruby console. 
>> Removing sequel_pg from the project also doesn't stop the segfault. It has 
>> something to do with the Puma worker process, but I am unsure if Puma or 
>> Sequel is the source of the issue. 
>>
>> I attached all the segufault details to this message, and I can run 
>> other diagnostics or provide more information if needed. Help with 
>> debugging this or identifying which issue tracker I should report it to 
>> would be greatly appreciated. 
>>
>> MacOS 10.15 Catalina
>> ruby 2.6.5p114 
>> sequel 5.25.0
>> sequel_pg 1.12.2
>> puma 4.2.1
>>
>
> Thanks, the reports you provided are helpful.
>
> This is a bug in a lower level, probably either in PostgreSQL or in Mac OS:
>
> Thread 4 Crashed:: thread_pool.rb*  Dispatch queue: 
> com.apple.security.keychain-cache-queue
> 0   libsystem_kernel.dylib        0x00007fff6d50b47a __pthread_kill + 10
> 1   libsystem_pthread.dylib        0x00007fff6d5c8707 pthread_kill + 384
> 2   libsystem_c.dylib              0x00007fff6d493a08 abort + 120
> 3   ruby                          0x0000000107cbecf9 die + 9
> 4   ruby                          0x0000000107cbef34 rb_bug_context + 564
> 5   ruby                          0x0000000107dd45a1 sigsegv + 81
> 6   libsystem_platform.dylib      0x00007fff6d5bdb1d _sigtramp + 29
> 7   ???                            000000000000000000 0 + 0
> 8   libdispatch.dylib              0x00007fff6d36c4de 
> _dispatch_client_callout + 8
> 9   libdispatch.dylib              0x00007fff6d378576 
> _dispatch_lane_barrier_sync_invoke_and_complete + 60
> 10  com.apple.security            0x00007fff42ab00b1 
> Security::KeychainCore::StorageManager::tickleKeychain(Security::KeychainCore::KeychainImpl*)
>  
> + 485
> 11  com.apple.security            0x00007fff428845c2 
> Security::KeychainCore::KCCursorImpl::next(Security::KeychainCore::Item&) + 
> 352
> 12  com.apple.security            0x00007fff42a52119 
> Security::KeychainCore::IdentityCursor::next(Security::SecPointer<Security::KeychainCore::Identity>&)
>  
> + 217
> 13  com.apple.security            0x00007fff42a76c6b 
> SecIdentitySearchCopyNext + 155
> 14  com.apple.security            0x00007fff42a81f80 
> SecItemCopyMatching_osx(__CFDictionary const*, void const**) + 261
> 15  com.apple.security            0x00007fff42a857c8 SecItemCopyMatching 
> + 338
> 16  com.apple.Heimdal              0x00007fff57fdeb8b 0x7fff57f8d000 + 
> 334731
> 17  com.apple.Heimdal              0x00007fff57fdd6ac hx509_certs_find + 
> 67
> 18  com.apple.Heimdal              0x00007fff57fb9686 _krb5_pk_find_cert 
> + 246
> 19  com.apple.GSS                  0x00007fff38d1ee3d 
> _gsspku2u_acquire_cred + 386
> 20  com.apple.GSS                  0x00007fff38d0e2c4 gss_acquire_cred + 
> 529
> 21  libpq.5.dylib                  0x000000011017d81e 
> pg_GSS_have_cred_cache + 78
> 22  libpq.5.dylib                  0x000000011015b795 PQconnectPoll + 4885
> 23  libpq.5.dylib                  0x0000000110157f71 connectDBComplete + 
> 609
> 24  libpq.5.dylib                  0x000000011015814e PQconnectdb + 62
> 25  pg_ext.bundle                  0x0000000110118ab1 
> gvl_PQconnectdb_skeleton + 17 (gvl_wrappers.c:13)
> 26  ruby                          0x0000000107e11cd9 call_without_gvl + 
> 185
> 27  pg_ext.bundle                  0x0000000110118a8d gvl_PQconnectdb + 
> 45 (gvl_wrappers.c:14)
> 28  pg_ext.bundle                  0x000000011011dbe9 pgconn_init + 121 
> (pg_connection.c:276)
> 29  ruby                          0x0000000107e52e96 vm_call0_body + 630
> 30  ruby                          0x0000000107e51451 rb_funcallv + 625
> 31  ruby                          0x0000000107d4d0b9 rb_class_s_new + 41
>
>
> It's quite similar to a bug posted on the Ruby bugtracker earlier this 
> month: https://bugs.ruby-lang.org/issues/16239.  As I said in that 
> ticket: 
>
> If I had to guess, this is a PostgreSQL issue with GSS authentication on 
> Mac OS. Since PostgreSQL 12 was just released, it may be a regression. 
> Please try contacting the PostgreSQL developers.
>
>
> If you are using PostgreSQL 12, that makes it more likely this is 
> regression in PostgreSQL 12, as the Ruby bug report was for Mac OS X 
> Mojave, not Catalina.
>
> Thanks,
> Jeremy
>

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sequel-talk/cac9e63b-7a1a-4ec4-8513-7943f11e9f20%40googlegroups.com.

Reply via email to