Skip Menu |

This queue is for tickets about the DBD-Firebird CPAN distribution.

Report information
The Basics
Id: 110979
Status: resolved
Priority: 0/
Queue: DBD-Firebird

People
Owner: Nobody in particular
Requestors: ribasushi [...] leporine.io
Cc:
AdminCc:

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



Subject: Compiler-dependent failure on RETURNING $sth->fetch
I need to start with a disclaimer: this bug is reliably reproducible on travis on 5.8. However with a newer compiler stack (gcc 5.x) I am able to reproduce it even on perl 5.16 on my local workstation. So please do not dismiss this lightly. The setup is really simple - a plain insert-returning with a subsequent fetch, followed by a subsequent finish as seen in [1] fails with an exception [2] IFF we are running on a sufficiently new version of gcc (4.8+). This problem is reminiscent of the (yet unsolved) nonnull clusterfuck within perl itself as seen in [3]. I have not dug into the source to try to figure this out at all. The entire thing is reproducible with the steps at [4]. Cheers! [1] https://github.com/ribasushi/dbd_firebird_finish_failure/blob/master/test_firebird.t#L50-L58 [2] https://travis-ci.org/ribasushi/dbd_firebird_finish_failure/jobs/100819448#L1117 [3] https://rt.perl.org/Public/Bug/Display.html?id=125570 [4] https://github.com/ribasushi/dbd_firebird_finish_failure
На 07 ян. 2016, чт 15:37:25, RIBASUSHI написа: Show quoted text
> I need to start with a disclaimer: this bug is reliably reproducible > on travis on 5.8. However with a newer compiler stack (gcc 5.x) I am > able to reproduce it even on perl 5.16 on my local workstation. So > please do not dismiss this lightly. > > The setup is really simple - a plain insert-returning with a > subsequent fetch, followed by a subsequent finish as seen in [1] fails > with an exception [2] IFF we are running on a sufficiently new version > of gcc (4.8+). This problem is reminiscent of the (yet unsolved) > nonnull clusterfuck within perl itself as seen in [3]. > > I have not dug into the source to try to figure this out at all. The > entire thing is reproducible with the steps at [4]. > > Cheers! > > [1] > https://github.com/ribasushi/dbd_firebird_finish_failure/blob/master/test_firebird.t#L50- > L58 > [2] https://travis- > ci.org/ribasushi/dbd_firebird_finish_failure/jobs/100819448#L1117 > [3] https://rt.perl.org/Public/Bug/Display.html?id=125570 > [4] https://github.com/ribasushi/dbd_firebird_finish_failure
I can't reproduce this with the test in https://github.com/mariuz/perl-dbd-firebird/blob/master/t/rt110979.t (using gcc 5.3.1 and perl 5.22.1). Perhaps the CPAN testers will sched some light.
На 07 ян. 2016, чт 15:37:25, RIBASUSHI написа: Show quoted text
> I need to start with a disclaimer: this bug is reliably reproducible > on travis on 5.8. However with a newer compiler stack (gcc 5.x) I am > able to reproduce it even on perl 5.16 on my local workstation. So > please do not dismiss this lightly.
Sorry it took so long. the problem was with spurious error checking of uninitialised "status vector" (the thing Firebird uses to pass error conditions). Fixed in 1.27
On Sat Dec 02 11:12:15 2017, DAM wrote: Show quoted text
> > Fixed in 1.27
Confirmed: https://travis-ci.org/ribasushi/dbd_firebird_finish_failure/builds/100819447