On Tue, Aug 31, 2010 at 3:39 PM, Dominic Hargreaves <d...@earth.li> wrote: > On Tue, Aug 31, 2010 at 10:17:34PM +0400, Konstantin Khomoutov wrote: >> I'm using RT 3.8 with apache2 via mod_perl, MySQL is used as a database >> backend. When the server is booted using insserv, apache2 starts long >> before MySQL and for some reason some bit of RT tries to access the >> MySQL server, times out and fails; this prevents apache2 from starting. > > [snip logs] > >> DBI connect('dbname=rtdb;host=localhost','rtuser',...) failed: Can't connect >> to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) at >> /usr/share/perl5/DBIx/SearchBuilder/Handle.pm line 106 >> [Tue Aug 31 21:40:18 2010] [error] Connect Failed Can't connect to local >> MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)\n at >> /usr/share/request-tracker3.8/lib/RT.pm line 217\nCompilation failed in >> require at (eval 2) line 1.\n >> [Tue Aug 31 21:40:18 2010] [error] Can't load Perl file: >> /usr/share/request-tracker3.8/libexec/webmux.pl for server >> rt-admin.domain007.com:0, exiting... >> >> If I then start apache2 by hand, it starts OK (it only complains about >> the RTAddressRegexp config variable being unset which is harmless I suppose). > > [snip details] > >> I suspect the included "/etc/request-tracker3.8/apache2-modperl2.conf" >> file might be a culprit as otherwise I can't imagine what other code >> could call RT internals and make it access the DB backend. > > Okay, there are two possible resolutions to this problem which spring > to mind: > > * Arrange for database servers to start before Apache > > I'm not sure if this is feasible, but it seems to me that it's likely > to be generally correct, given the layering implicit in database + web > applications. > > * Arrange for RT to be more robust when a connection to the database fails > > This is certainly something worth exploring, but is likely to be a rather > involved fix; not something I relish at this stage of the release cycle > (diverging from upstream). Then again, perhaps changing Apache or MySQL > (and the other database servers) would be more disruptive :) > > I've added the CC because I'm not sure where to start discussing > whether the Apache/MySQL ordering can be changed. I had a look at > Policy (which doesn't seem to mention dependency based booting at all; > surely an inconsistency if it is to be enabled for squeeze?) and > <http://wiki.debian.org/LSBInitScripts> which leads me to think that > Apache needs something like "Should-Start: $database_server", but this > is mainly guessing. I would appreciate input from those familiar with > this part of the Debian infrastructure.
Perhaps for /etc/init.d/mysql-server (or whatever it is called) # X-Start-Before: apache2 # X-Stop-After: apache2 I would think that it would be innocuous if apache2 was not installed. Is there a way to reference the virtual package httpd in the LSB headers? -matt zagrabelny -- To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/aanlkti=l7r_sjw5k-zagks0juyy3m1p=gc4ledyfm...@mail.gmail.com