Closed Bug 87406 (mod_perl) Opened 23 years ago Closed 18 years ago

Make Bugzilla work with mod_perl (under Apache)

Categories

(Bugzilla :: Bugzilla-General, enhancement, P1)

2.13
enhancement

Tracking

()

RESOLVED FIXED
Bugzilla 3.0

People

(Reporter: afranke, Assigned: mkanat)

References

(Depends on 2 open bugs, Blocks 1 open bug, )

Details

(Keywords: perf, topperf)

With this bug I'm following up on the posts from Richard Walters in .webtools.
It is meant to track all the work required to make Bugzilla work with mod_perl.
The diff -w is still big (>300K unzipped), so I think it's probably best to do
this in several different steps. The first thing should probably be the
introduction of a bugzilla namespace. I'm going to file a dependent bug on that.
Depends on: bz-globals
Keywords: perf
Whiteboard: tarball against 2001-05-22 CVS available at above URL
Keywords: patch, review
Priority: -- → P2
Target Milestone: --- → Bugzilla 2.16
I've been operating my mod_perl enabled Bugzilla for a while now and found and
fixed a few bugs here and there, which were introduced by my changes to run
Bugzilla under mod_perl.  The bugs are tricky to find because they manifest
themselves as variables which were assumed to go away between instances of the
scripts, but instead "stay around" due to the fact that Perl variables are
persistant in mod_perl.

So I would caution those that try to use mod_perl with Bugzilla, that there are
probably more bugs to be cleaned up.

On the bright side, fixing these variable lifetime assumption bugs make the code
more robust (fewer assumptions = more robustness) so it is helping to improve
the coding style of Bugzilla.
Severity: major → enhancement
Target Milestone: Bugzilla 2.16 → Bugzilla 2.18
-> Bugzilla product, General component, reassigning.
Assignee: tara → justdave
Component: Bugzilla → Bugzilla-General
Product: Webtools → Bugzilla
Version: Bugzilla 2.13 → 2.13
Target Milestone: Bugzilla 2.18 → Bugzilla 2.16
Blocks: 104690
This ain't on the 2.16 train, according to opinion in #mozwebtools. There's much
more high-priority stuff.

Gerv
Target Milestone: Bugzilla 2.16 → Bugzilla 2.18
This would be a big performance win.  Adding to the performance issues meta-bug.
Blocks: bz-perf
Alias: mod_perl
Depends on: 173621
Severity: enhancement → major
Depends on: 173629
No longer depends on: 173621
Keywords: topperf
Depends on: 173897
PLEASE fix this as soon as possible!  I just installed Bugzilla on my lowly P200
and it takes (literally) 14 seconds for every request due to the time it takes
to initialize all the Perl modules!  This may not seem like a big deal to people
using servers with GHz+ speeds and tons of memory, but the performance I'm
seeing on my older machine is downright pathetic.

I don't understand why Bugzilla wasn't written with mod_perl in mind in the
first place.  It was well known in 1998 that mod_perl is significantly faster,
so what possessed Bugzilla's authors to go CGI-only and pollute the global
namespace too?
-> me, and removing the now out of date url link

I need to fix bug 87411's deps first, but I have semi-patches for most of those,
not including the ones I'm about to file. I also need to fix bug 171493 (which
again I have a patch for) but I'm waiting for he groups rewrite to land (next
week, I believe), since that will invalidate it slightly.

show_bug.cgi accounts for just under 40% of bmo's page load, so I want to get
that one going first, after I do the index page as a proof-of-concept. After bug
171493 is fixed (and the other dependencies), that shouldn't be too hard.

Bugzilla didn't use mod_perl because it was originally a direct port from tcl :)
Some routines haven't been modified since that was originally done....
Depends on: 171493
Whiteboard: tarball against 2001-05-22 CVS available at above URL
No longer depends on: 171493
Depends on: 199813
Depends on: 201816
what is the current status on this?
(How did I avoid getting ccd on this...)

the status is that theres still work to to. See bug 87411 for most of it. I have
show_bug working locally, with a lot of hacking.
Depends on: 208604
Depends on: 225818
Depends on: 98451
No longer depends on: 98451
Pushing out bugs that aren't blockers.  If someone's working on one of these, we
can move it back.
Target Milestone: Bugzilla 2.18 → Bugzilla 2.20
Depends on: 236926
Note that mod_perl doesn't read the -T switch on the shebang line, so we either
need to turn on taint by a variable in each script and module, or set it in the
.htaccess or in the .conf file for the directory. (I think it's PerlTaintCheck
or something like that.)
Blocks: bz-majorarch
I'm guessing that we'll see this actually work well by Bugzilla 2.24. I actually
don't see it being fully complete by 2.22. Although you never know, maybe if we
get close enough we'll see it happen.
Assignee: justdave → mkanat
Severity: major → enhancement
Target Milestone: Bugzilla 2.20 → Bugzilla 2.24
Priority: P2 → P1
Target Milestone: Bugzilla 2.24 → Bugzilla 2.22
> PLEASE fix this as soon as possible!  I just installed Bugzilla 
> on my lowly P200 and it takes (literally) 14 seconds for every 
> request due to the time it takes to initialize all the Perl modules!

I would suggest upgrading your machine.
Depends on: 300410
Depends on: 304599
Blocks: 316665
Target Milestone: Bugzilla 2.22 → Bugzilla 2.24
No longer blocks: 316665
Blocks: bz-roadmap
Depends on: 342114
QA Contact: mattyt-bugzilla → default-qa
Depends on: 342736
Depends on: 342744
Depends on: 342121
Depends on: 342757
Depends on: 343166
Depends on: 343336
Depends on: 343337
Depends on: 343338
No longer depends on: 304599
Status: NEW → ASSIGNED
Depends on: 344527
Depends on: 344913
Depends on: 345376
Depends on: 345405
Depends on: 345547
Depends on: 348923
Depends on: 351177
Depends on: 353358
Depends on: 361980
No longer depends on: 361980
Blocks: 335151
Okay, all of the major bugs that we know of in Bugzilla's mod_perl support are FIXED!

There are a few small bugs remaining that have been noted as blockers here, but they aren't really blockers to us saying that we support mod_perl, as far as I'm concerned. mod_perl support should be functional and stable enough to use in a small production environment or a serious test environment. In just a week or so it will be on bugzilla.mozilla.org, where we'll work out any remaining kinks and brand it stable.

Wow, what an effort, thank you to everybody who's contributed to this over the years. This has been the largest and longest project in Bugzilla's history, and it's amazing to be able to mark this bug fixed.
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Thank you very much for your work, guys! 
You need to log in before you can comment on or make changes to this bug.