Skip Menu |
 

This queue is for tickets about the DBIx-Class CPAN distribution.

Report information
The Basics
Id: 114214
Status: patched
Priority: 0/
Queue: DBIx-Class

People
Owner: Nobody in particular
Requestors: mmusgrove [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: DBIx::Class::Storage::Sybase::_ping
Download (untitled) / with headers
text/plain 562b
When syb_no_child_con is enabled the _ping method of DBIx::Class::Storage::Sybase creates a new database handle so that it can try a 'select 1' query. The comments indicate someone else thought this was an odd thing to do: # FIXME if the main connection goes stale, does opening another for this statement # really determine anything? This is most certainly the wrong thing to do. It can lead to an application having an unhealthy connection to an otherwise healthy database that continues to get used (and continue to throw errors) because _ping returns true.
Download (untitled) / with headers
text/plain 1.1k
On Fri May 06 20:07:01 2016, MMUSGROVE wrote: Show quoted text
> When syb_no_child_con is enabled the _ping method of > DBIx::Class::Storage::Sybase creates a new database handle so that it > can try a 'select 1' query. The comments indicate someone else thought > this was an odd thing to do: > > # FIXME if the main connection goes stale, does opening another for > this statement > # really determine anything? > > This is most certainly the wrong thing to do. It can lead to an > application having an unhealthy connection to an otherwise healthy > database that continues to get used (and continue to throw errors) > because _ping returns true.
Indeed. I finally got a chance to audit the (oh god so crufty) codepath - and it seems that just removing the thing is sufficient, without even looking at the syb_child stuff. I have done so in https://github.com/dbsrgits/dbix-class/commit/82c5f9168 It would be great if you can test https://github.com/dbsrgits/dbix-class/tree/master against your Sybase RDBMS, by setting the envvars DBICTEST_SYBASE_DSN/_USER/_PASS and paying attention specifically to t/746sybase.t and t/icdt/engine_specific/sybase.t Thanks in advance!
Download (untitled) / with headers
text/plain 134b
Sorry for the late response but it's looking good so far! I'm going to kick off a full run of make test but I don't expect any issues.
Subject: 746sybase.out
Download 746sybase.out
application/octet-stream 13.9k

Message body not shown because it is not plain text.

Subject: icdt-sybase.out
Download icdt-sybase.out
application/octet-stream 1.2k

Message body not shown because it is not plain text.



This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.