Skip Menu |

This queue is for tickets about the DBM-Deep CPAN distribution.

Report information
The Basics
Id: 112059
Status: resolved
Worked: 30 min
Priority: 0/
Queue: DBM-Deep

People
Owner: Nobody in particular
Requestors: CHUCKROB [...] cpan.org
Cc: croberts [...] gilsongraphics.com
AdminCc:

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



CC: croberts [...] gilsongraphics.com
Subject: "1000 levels deep in subroutine calls"
I'm getting this error with Perl 5.20.1 and DBM::Deep 2.0011 and 2.0013. I'm storing data one level deep, and data contains chr(1) as record separators and chr(9) as field separators. If that's a problem that should be documented. Key is less than 20 ctrs long. Anyway, never had problems with this except today. I'll try another record separator and see if that works. I'm trying to avoid using printable ctrs as separators. Basically this makes DBM::Deep unusable.
I did some more testing, and the largest piece of data it's storing is 55764 bytes, then I get the error "1000 levels deep in subroutines calls!". Also it's having quite big slowdowns.
Crap. That should not show as fixed in 2.0013
Did more testing using a record separator of chr(2) and chr(0) and tilde (~). Still got the same error.
On Mon Feb 15 12:18:12 2016, CHUCKROB wrote: Show quoted text
> I'm getting this error with Perl 5.20.1 and DBM::Deep 2.0011 and > 2.0013. I'm storing data one level deep, and data contains chr(1) as > record separators and chr(9) as field separators. If that's a problem > that should be documented. Key is less than 20 ctrs long. > > Anyway, never had problems with this except today. I'll try another > record separator and see if that works. I'm trying to avoid using > printable ctrs as separators.
Are you saying that you have previously use chr(1)/chr(9) in your data with DBM::Deep and it worked? If so, what changed between when it worked and when it didn't?
On Mon Feb 15 13:25:45 2016, RKINYON wrote: Show quoted text
> Are you saying that you have previously use chr(1)/chr(9) in your data > with DBM::Deep and it worked? If so, what changed between when it > worked and when it didn't?
I have used chr(9) in my data with DBM::Deep before but not chr(1) or chr(0). The thing that changed is I was using chr(1) or chr(0) this time when I got the error. I also tried using a tilde, and still got the error. So now I don't know if the error is related to the tilde, chr(0) or chr(1) or not.
Sorry. The things that changed is the day I had the error I upgraded from DBM::Deep 2.0011 to 2.0013. And I started using chr(0), chr(1), and tilde in my data (not key). I have never used 2.0011 with chr(0), chr(1) or tilde in my data.
From: ozcoder [...] gmail.com
On Wed Feb 17 15:25:48 2016, CHUCKROB wrote: Show quoted text
> Sorry. The things that changed is the day I had the error I upgraded > from DBM::Deep 2.0011 to 2.0013. And I started using chr(0), chr(1), > and tilde in my data (not key). I have never used 2.0011 with chr(0), > chr(1) or tilde in my data.
I was wondering if you are doing anything silly like using the same key twice.
On Wed Feb 17 15:10:16 2016, CHUCKROB wrote: Show quoted text
> On Mon Feb 15 13:25:45 2016, RKINYON wrote:
> > Are you saying that you have previously use chr(1)/chr(9) in your > > data > > with DBM::Deep and it worked? If so, what changed between when it > > worked and when it didn't?
> > > I have used chr(9) in my data with DBM::Deep before but not chr(1) or > chr(0). The thing that changed is I was using chr(1) or chr(0) this > time when I got the error. I also tried using a tilde, and still got > the error. > > So now I don't know if the error is related to the tilde, chr(0) or > chr(1) or not.
I've created a branch called odd_characters in the repository at https://github.com/robkinyon/dbm-deep and committed t/59_odd_characters.t in it. It's got the best understanding I have for what's happening to you. The problem is that the test is passing for me. Please amend that test until it fails for you and push it up to that branch. I cannot fix what I don't have a failing test for. Note: I'm using Ubuntu 14.04 with the stock Perl 5.18.2. I don't know if that's mattering here, but I want to see if it does.
Subject: Re: [rt.cpan.org #112059] "1000 levels deep in subroutine calls"
Date: Sun, 6 Mar 2016 15:23:37 -0500
To: bug-DBM-Deep [...] rt.cpan.org
From: Chuck Roberts <croberts [...] gilsongraphics.com>
I've been real sick lately, influenza has been going around. I will try to get to this after March 14, 2016. This email has been sent from a virus-free computer protected by Avast. www.avast.com <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> <#DDB4FAA8-2DD7-40BB-A1B8-4E2AA1F9FDF2> On Sat, Mar 5, 2016 at 9:08 PM, RKINYON via RT <bug-DBM-Deep@rt.cpan.org> wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=112059 > > > On Wed Feb 17 15:10:16 2016, CHUCKROB wrote:
> > On Mon Feb 15 13:25:45 2016, RKINYON wrote:
> > > Are you saying that you have previously use chr(1)/chr(9) in your > > > data > > > with DBM::Deep and it worked? If so, what changed between when it > > > worked and when it didn't?
> > > > > > I have used chr(9) in my data with DBM::Deep before but not chr(1) or > > chr(0). The thing that changed is I was using chr(1) or chr(0) this > > time when I got the error. I also tried using a tilde, and still got > > the error. > > > > So now I don't know if the error is related to the tilde, chr(0) or > > chr(1) or not.
> > > I've created a branch called odd_characters in the repository at > https://github.com/robkinyon/dbm-deep and committed t/59_odd_characters.t > in it. It's got the best understanding I have for what's happening to you. > > The problem is that the test is passing for me. Please amend that test > until it fails for you and push it up to that branch. I cannot fix what I > don't have a failing test for. > > Note: I'm using Ubuntu 14.04 with the stock Perl 5.18.2. I don't know if > that's mattering here, but I want to see if it does. >
On Thu Mar 03 02:30:52 2016, ozcoder@gmail.com wrote: Show quoted text
> I was wondering if you are doing anything silly like using the same > key twice.
Of course I'm using the same keys more than once. I'm looping through hundreds of lines, and sometimes I have to add data to the same key. Let's say I'm looping through jobs, and all the invoice details on each job. But I don't want to store the invoice details, only the dollar amounts on each invoice detail. So my keys look like this: $dbm->{$jobnum}->{$invnum} and the data is the dollar amount from the invoice detail. There will be multiple invoice headers per job, and multiple invoice details per invoice header. So for each detail I'm reading that same job and invoice key, and updating the dollar amount.
I'm catching up on work after being sick but I will try to make a simple case that fails and post the Perl code here later.
I did some testing and was unable to duplicate the problem right now. If I come across this again I'll let you know with a small example.