Open Bug 481549 Opened 16 years ago Updated 8 years ago

Can't create bug when the product has more than 500 milestones

Categories

(Bugzilla :: Creating/Changing Bugs, defect)

3.2.2
defect
Not set
normal

Tracking

()

People

(Reporter: weiluoca, Unassigned)

References

Details

Attachments

(3 files, 1 obsolete file)

User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9) Gecko/2008061712 Fedora/3.0-1.fc9 Firefox/3.0 Build Identifier: Release 3.2.2 Can't create bug when the product has more than 500 milestones. Error: Bugzilla has suffered an internal error. Please save this page and send it to THE MAINTAINER HAS NOT YET BEEN SET with details of what you were doing at the time this message appeared. URL: http://localhost/bugzilla-3.2.2/post_bug.cgi undef error - Not an ARRAY reference at Bugzilla/Object.pm line 201. Reproducible: Always
Severity: normal → critical
Severity: critical → major
Keywords: qawanted
Version: unspecified → 3.2.2
I just tried with 600 milestones on PostgreSQL + MySQL, both on 3.2.3 and 3.3.4, and I cannot reproduce the problem. I can create and edit bugs without any problem.
I also tried to reproduce bug 482371 with 600+ bugs edited at once, and still no problem.
Keywords: qawanted
Where can i find 3.2.3 or 3.3.4? I could not find on the bugzilla.org download page. Thanks
The issue only can be reproduced when one particular product has more than 500 milestones. No limitation on the total number of milestones.
(In reply to comment #4) > Where can i find 3.2.3 or 3.3.4? They haven't been released yet. Should be available soon. (In reply to comment #5) > The issue only can be reproduced when one particular product has more than 500 > milestones. Unless the product has some additional characteristics, I definitely cannot reproduce.
The 'change several' bug that this is duped to is still occurring with cvs tag BUGZILLA-3_2-BRANCH. Some environment difference perhaps? $ ./checksetup.pl * This is Bugzilla 3.2.2+ on perl 5.10.0 * Running on Linux 2.6.27.19-78.2.30.fc9.i686.PAE #1 SMP Tue Feb 24 19:57:41 EST 2009 Checking perl modules... Checking for CGI.pm (v3.33) ok: found v3.38 Checking for TimeDate (v2.21) ok: found v2.22 Checking for PathTools (v0.84) ok: found v3.2501 Checking for DBI (v1.41) ok: found v1.607 Checking for Template-Toolkit (v2.15) ok: found v2.19 Checking for Email-Send (v2.00) ok: found v2.192 Checking for Email-MIME (v1.861) ok: found v1.861 Checking for Email-MIME-Modifier (v1.442) ok: found v1.442 Checking available perl DBD modules... Checking for DBD-Pg (v1.45) ok: found v2.10.0 Checking for DBD-mysql (v4.00) ok: found v4.005 Checking for DBD-Oracle (v1.19) not found The following Perl modules are optional: Checking for GD (v1.20) ok: found v2.35 Checking for Chart (v1.0) ok: found v2.4.1 Checking for Template-GD (any) ok: found v1.56 Checking for GDTextUtil (any) ok: found v0.86 Checking for GDGraph (any) ok: found v1.44 Checking for XML-Twig (any) ok: found v3.32 Checking for MIME-tools (v5.406) ok: found v5.426 Checking for libwww-perl (any) ok: found v5.816 Checking for PatchReader (v0.9.4) ok: found v0.9.5 Checking for PerlMagick (any) ok: found v6.3.8 Checking for perl-ldap (any) ok: found v0.34 Checking for Authen-SASL (any) ok: found v2.10 Checking for RadiusPerl (any) ok: found v0.13 Checking for SOAP-Lite (any) ok: found v0.710.07 Checking for HTML-Parser (v3.40) ok: found v3.56 Checking for HTML-Scrubber (any) ok: found v0.08 Checking for Email-MIME-Attachment-Stripper (any) ok: found v1.314 Checking for Email-Reply (any) ok: found v1.202 Checking for mod_perl (v1.999022) ok: found v2.000004 Reading ./localconfig... Checking for DBD-mysql (v4.00) ok: found v4.005 Checking for MySQL (v4.1.2) ok: found v5.0.51a Removing existing compiled templates... Precompiling templates...done. Fixing file permissions...
I found this problem on 3.2.2 and 3.3.3. But it got verified on 3.2.3 and 3.3.4. What is big differences between those versions? And I am using the default product "TestProduct" come with the installation. Here are what i did. (1)tar -xzvf bugzilla-3.3.3.tar.gz (2)./checksetup.pl (3)/usr/bin/perl install-module.pl --all (4) modify localconfig (5)./checksetup.pl (6) insert 496 milestones for TestProduct into milestones table using the attached file (7) Then when i create a new bug, I get error.
I don't know enough about your object layout to know if this is correct, but here's some print statements of the variables in question on line 201, after a 2000 bug change attempt (again with cvs tag BUGZILLA-3_2-BRANCH): $ cvs diff Bugzilla/Object.pm Index: Bugzilla/Object.pm =================================================================== RCS file: /cvsroot/mozilla/webtools/bugzilla/Bugzilla/Object.pm,v retrieving revision 1.23 diff -r1.23 Object.pm 200a201,203 > open(FOO, ">>/tmp/foo"); print FOO "CLASS $class\n"; close(FOO); > open(FOO, ">>/tmp/foo"); print FOO "OBJECTS $objects\n"; close(FOO); > open(FOO, ">>/tmp/foo"); print FOO "OBJECTSA @$objects\n"; close(FOO); $ cat /tmp/foo CLASS Bugzilla::Field OBJECTS ARRAY(0xa5365a4) OBJECTSA HASH(0xaf58474) HASH(0xaf58524) HASH(0xaf585d4) CLASS Bugzilla::Bug OBJECTS DBI::db=HASH(0xad6ab94) $ Didn't like my attempt to print @$objects.
(In reply to comment #8) > milestones No idea what this attachment is. Its name "2" is meaningless. Is that a text file or what?
Attachment #366706 - Attachment description: milestones → 496 milestones for Product "TestProduct"
Attachment #366706 - Attachment filename: 2 → milestones
I renamed it. It is a text file and has 496 records. I used it to add milestone into milestones tables.
I use MySQL 5.0.67.
Attachment #366706 - Attachment mime type: application/octet-stream → text/plain
I'm not really in a position to swap around mysql versions. Clearly bugzilla is attempting to treat a DBI::db=HASH object as an ARRAY, and puking. Everything but bugzilla is stock Fedora Core 9, with a current 'yum update'. Any other diagnostics I can get for you?
I have observed this same problem, except with Versions > 500 (not Milestones) Should I file a new bug for Versions?
(In reply to comment #15) > Should I file a new bug for Versions? No, the root cause is probably the same.
This bug and those I marked as dupes all point to the same line in Object.pm, in sub _do_list_select(): bless ($_, $class) foreach @$objects;
Hmm, maybe it has something to do with Product::preload().
Hi This bug doesn't appear on old version of bugzilla. On 3.0.4, i don't get this problem but the web interface is very slow for those users. Perhaps if we have a system caching under bugzilla or postgresql can improve request performances
Also the request which take a lot of time and which doesn't succeed is the select on the fonticon do_list_select (you can see the log that i send as an attachement under bug 536190) i think that the sub to review is new_from_list which is called under some libs as User.pm. it seems that it is a kind of limit in number of elements to put on the sql query.
i've fixed that by updating DBD:PG version i've installed 2.16.1 with postgresql 8.4
(In reply to comment #22) > i've fixed that by updating DBD:PG version > i've installed 2.16.1 with postgresql 8.4 Okay. What did you fix? Did you fix the issue described in comment 0 on this bug?
I'm going to confirm this bug based on the number of duplicates. Not being able to reproduce the problem doesn't help me to fix the bug. We at least know the line which throws the error, as mentioned in comment 18. Did someone manage to narrow the timeframe when this problem occured? Per bug 585938, which I just marked as a duplicate of this bug, Bugzilla 3.6.1 is still affected by this problem. I also see that a lot of people reported this problem against Bugzilla 3.2.2. Does it mean 3.2.1 is not affected?
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: qawanted
OS: Linux → All
Hardware: x86 → All
Here is the script I used to try to reproduce the problem. You first have to set the $creator and $product_name variables, as explained in the script, and then run it from the bugzilla/ root directory, by typing: perl foo.pl Can someone reproduce the issue with this script? I personally still cannot, despite I have 1000 components, milestones and versions. I can create a new bug without any problem, and query.cgi is displaying fine.
(In reply to comment #26) > Created attachment 464423 [details] > script to create one product with 1000 components, milestones and versions > > Here is the script I used to try to reproduce the problem. You first have to > set the $creator and $product_name variables, as explained in the script, and > then run it from the bugzilla/ root directory, by typing: perl foo.pl > > Can someone reproduce the issue with this script? I personally still cannot, > despite I have 1000 components, milestones and versions. I can create a new bug > without any problem, and query.cgi is displaying fine. I ran your script against my 3.6.1 installation to create the new product, but the versions creation errored out, so I ended up with a new product with 999 components, but only 1 version and 1 milestone. Then I tried editing the product, got the same error - Not an ARRAY reference at Bugzilla/Object.pm line 267. Also got the same error when trying to open a new bug against the new product.
(In reply to comment #27) > I ran your script against my 3.6.1 installation to create the new product, but > the versions creation errored out, so I ended up with a new product with 999 > components, but only 1 version and 1 milestone. Ah yes, sorry, that's because my patch was written against Bugzilla 4.1. It works with Bugzilla 3.7.3 and newer only, due to a change in the backend code. > Then I tried editing the product, got the same error - Not an ARRAY reference > at Bugzilla/Object.pm line 267. Also got the same error when trying to open a > new bug against the new product. Wow. So what's so different between your installation and mine? What's your output of checksetup.pl?
Attachment #464423 - Attachment description: script to create one product with 1000 components, milestones and versions → script for Bugzilla 3.7.3 and 4.1 to create one product with 1000 components, milestones and versions
Here is the same script, but which works with Bugzilla 3.6 - 3.6.2.
Attachment #366706 - Attachment is obsolete: true
(In reply to comment #28) > (In reply to comment #27) > > I ran your script against my 3.6.1 installation to create the new product, but > > the versions creation errored out, so I ended up with a new product with 999 > > components, but only 1 version and 1 milestone. > > Ah yes, sorry, that's because my patch was written against Bugzilla 4.1. It > works with Bugzilla 3.7.3 and newer only, due to a change in the backend code. > > > > Then I tried editing the product, got the same error - Not an ARRAY reference > > at Bugzilla/Object.pm line 267. Also got the same error when trying to open a > > new bug against the new product. > > Wow. So what's so different between your installation and mine? What's your > output of checksetup.pl? Here's the output you requested: [root@agate bugzilla-3.6.1]# ./checksetup.pl * This is Bugzilla 3.6.1 on perl 5.8.8 * Running on Linux 2.6.18-92.el5 #1 SMP Tue Apr 29 13:16:12 EDT 2008 Checking perl modules... Checking for CGI.pm (v3.21) ok: found v3.49 Checking for Digest-SHA (any) ok: found v5.48 Checking for TimeDate (v2.21) ok: found v2.24 Checking for DateTime (v0.28) ok: found v0.61 Checking for DateTime-TimeZone (v0.71) ok: found v1.19 Checking for DBI (v1.41) ok: found v1.52 Checking for Template-Toolkit (v2.22) ok: found v2.22 Checking for Email-Send (v2.00) ok: found v2.198 Checking for Email-MIME (v1.861) ok: found v1.903 Checking for Email-MIME-Encodings (v1.313) ok: found v1.313 Checking for Email-MIME-Modifier (v1.442) ok: found v1.903 Checking for URI (any) ok: found v1.35 Checking available perl DBD modules... Checking for DBD-Pg (v1.45) ok: found v1.49 Checking for DBD-mysql (v4.00) ok: found v4.016 Checking for DBD-Oracle (v1.19) not found The following Perl modules are optional: Checking for GD (v1.20) ok: found v2.45 Checking for Chart (v2.1) ok: found v2.4.1 Checking for Template-GD (any) ok: found v1.56 Checking for GDTextUtil (any) ok: found v0.86 Checking for GDGraph (any) ok: found v1.44 Checking for XML-Twig (any) ok: found v3.35 Checking for MIME-tools (v5.406) ok: found v5.428 Checking for libwww-perl (any) ok: found v2.033 Checking for PatchReader (v0.9.4) ok: found v0.9.5 Checking for perl-ldap (any) ok: found v0.4001 Checking for Authen-SASL (any) ok: found v2.15 Checking for RadiusPerl (any) not found Checking for SOAP-Lite (v0.710.06) ok: found v0.712 Checking for JSON-RPC (any) not found Checking for Test-Taint (any) ok: found v1.04 Checking for HTML-Parser (v3.40) ok: found v3.55 Checking for HTML-Scrubber (any) ok: found v0.08 Checking for Email-MIME-Attachment-Stripper (any) ok: found v1.316 Checking for Email-Reply (any) ok: found v1.202 Checking for TheSchwartz (any) ok: found v1.10 Checking for Daemon-Generic (any) ok: found v0.71 Checking for mod_perl (v1.999022) ok: found v2.000002 *********************************************************************** * OPTIONAL MODULES * *********************************************************************** * Certain Perl modules are not required by Bugzilla, but by * * installing the latest version you gain access to additional * * features. * * * * The optional modules you do not have installed are listed below, * * with the name of the feature they enable. Below that table are the * * commands to install each module. * *********************************************************************** * MODULE NAME * ENABLES FEATURE(S) * *********************************************************************** * RadiusPerl * RADIUS Authentication * * JSON-RPC * JSON-RPC Interface * *********************************************************************** COMMANDS TO INSTALL OPTIONAL MODULES: RadiusPerl: /usr/bin/perl install-module.pl Authen::Radius JSON-RPC: /usr/bin/perl install-module.pl JSON::RPC To attempt an automatic install of every required and optional module with one command, do: /usr/bin/perl install-module.pl --all Reading ./localconfig... Checking for DBD-mysql (v4.00) ok: found v4.016 Checking for MySQL (v4.1.2) ok: found v5.1.48
We have the same DBD::mysql version, and I use MySQL 5.1.46, which shouldn't matter. But I use DBI 1.613, while you use an old DBI 1.52. Could you run: ./install-module.pl DBI and see if it fixes your problem? (I also run Perl 5.10.1 and 5.12.1, while you run 5.8.8, but I hope that's not the reason of the problem.)
I installed DBI 1.53, and this didn't help. I still cannot reproduce.
Perhaps it's related to mysql configuration. Attach (as an attachment, not as a comment) the output of the following MySQL command: SHOW VARIABLES;
Vanilla Fedora Core 9 + updates and using mysql seems to repro it every time for me.
Here is the show variables output. I also updated the DBI module to v1.613, but the problem persists.
1. Reinstalled latest version of DBI 2. Reinstalled latest version of DBD::mysql The problem disappeared
Peter, what were your DBI and DBD::mysql versions before the upgrade (the ones which triggered the problem)?
This was a standard Ubuntu Server 8.04 with the packages installed via apt-get. libdbd-mysql-perl 4.005-1 libdbi-perl 1.601-1
Hmm. Okay. And did you reinstall them via apt-get, or did you re-install them using install-module.pl?
Through cpan
Decreasing severity. There are no clear steps to reproduce the problem in 100% of cases, and this only affects products with many (500+) milestones or versions, or users being in many (500+) groups, per the duplicates. Those are not so common cases. This doesn't mean we won't fix the problem once we can clearly identify what's really going on.
Severity: major → normal
Keywords: qawanted
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: