Hi Christian,
Thank you to answer so fast.
I would like to notify that the behavior of the Reviewboard, specially when
extensions are used is very 'strange' when Apache server is in MPM worker
mode instead of MPM Prefork.
When in MPM Worker, i noticed that the HTTP request are setup as:
wsgi.multithread : True and wsgi.multiprocess : True.
Ok. It's normal according to the mod_wsgi document ( read
http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading )
The issues i found (described in the topic
https://groups.google.com/forum/#!topic/reviewboard/XL0E9Sb22w0 ) is we
have sometimes a lot of errors ('[Review Board] ERROR (EXTERNAL IP)'
emails) because some object does not exist for example. I tried to analyze
the problem and perhaps i found the cause of these issues.
When the wsgi.multithread is set as True (so for example when Apache MPM
Worker is used), the HTTP requests received by the Reviewboard middleware
(as for example, the djblet middleware which checks the expiration of the
extension manager) can be processed in parallel in each thread BUT also in
the same process. So, when an expiration is detected (by comparing key with
cache) the extension manager is reloaded (so means that ALL extensions have
been reloaded). The problem is that if an other HTTP request is processed
at the same time in other thread BUT in the same process (so normally
memory is shared between threads), this HTTP request can have some issues
because the loading of the extension is not finished. That's why, i think,
i received a lot of '[Review Board] ERROR (EXTERNAL IP)' errors. The
process_request() method of the ExtensionsMiddleware class (in djblet
package) seems to not include synchronization mechanism.
I din't check yet, if you updated the Djblet library (we used the 0.7.11
version, and Reviewboard 1.7.6), but i think it's very important to check
the Apache configuration and use the Apache Prefork MPM to avoid the issues
we encountered. Because in this case, the multithread mechanism is not used
(wsgi.multithread= False) or synchronization mechanism shall be included in
the process_request() of each middleware.
That's why i asked you the recommended Apache MPM to use with Reviewboard.
Don't worry about the other topic i created.
I can understand you have no time. A new released of Reviewboard has been
out recently.
We planned to upgrade our Reviewboard application, but i saw you have
changed some things, especially the extension functionality.
So i need to check if our extensions are always compatible.
Regards,
Vincent
--
Get the Review Board Power Pack at http://www.reviewboard.org/powerpack/
---
Sign up for Review Board hosting at RBCommons: https://rbcommons.com/
---
Happy user? Let us know at http://www.reviewboard.org/users/
---
You received this message because you are subscribed to the Google Groups
reviewboard group.
To unsubscribe from this group and stop receiving emails from it, send an email
to reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.