<div dir="ltr">I just installed a new instance of RT (4.2.1).  I've been using RT for quite a long time now, through a lot of different versions, but this is a new issue for me.<div><br></div><div>Everything starts up fine, but after about 10 minutes or so, it loses connection to MySQL.  It can only be recovered by resarting the web server.  It's not limited to any particular functionality - I can be doing anything and the next click will serve up the issue.  </div>
<div><br></div><div>It's always the same error in the logs, no matter what I was doing in the web interface when it occurred:</div><div><br></div><div><i>[6876] [Thu Nov 21 23:12:06 2013] [warning]: DBI connect('dbname=rt4;host=localhost;port=3306','rt_user',...) failed: Can't connect to local MySQL server through socket '' (2) at /usr/local/share/perl5/DBIx/SearchBuilder/Handle.pm line 105. (/usr/local/share/perl5/Carp.pm:168)</i><br>
</div><div><br></div><div>The socket is at /var/lib/mysql/mysql.sock.</div><div><br></div><div>Below is a really long stack trace from the web interface that may or may not be useful.  I've tried setting MYSQL_UNIX_PORT in RT_SiteConfig.pm, moving it to /tmp, etc... but it just seems to transition from working fine to broken for no apparent reason.</div>
<div><br></div><div>Thanks!</div><div>Jay</div><div><br></div><div><br></div><div><h1 style="margin:0px 0px 0.5em;padding:0.25em 0.5em 0.1em 1.5em;border-bottom-width:thick;border-bottom-style:solid;border-bottom-color:rgb(0,0,34);background-color:rgb(68,68,68);color:rgb(238,238,238);font-size:x-large;font-family:Times">
Error trace</h1><pre class="" style="margin:0.5em 1em;color:rgb(0,0,0)">Connect Failed Can't connect to local MySQL server through socket '' (2)
 at /var/opt/rt-4.2.1/sbin/../lib/RT.pm line 210.
 at /usr/local/share/perl5/Carp.pm line 166</pre><ol style="color:rgb(0,0,0);font-family:Times;font-size:medium"><li class="" style="font-size:small;margin-top:0px">in Carp::croak at /usr/local/share/perl5/Carp.pm line 166<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>  163:     shortmess_heavy(@_);
  164: }
  165: 
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">  166: sub croak   { die shortmess @_ }
</strong>  167: sub confess { die longmess @_ }
  168: sub carp    { warn shortmess @_ }
  169: sub cluck   { warn longmess @_ }
</code></pre><p><a class="" id="toggle-arg-1" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in DBIx::SearchBuilder::Handle::Connect at /usr/local/share/perl5/DBIx/SearchBuilder/Handle.pm line 105<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>  102:     # Only connect if we're not connected to this source already
  103:     return undef if $self->dbh && $self->dbh->ping && $new_dsn eq $old_dsn;
  104: 
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">  105:     my $handle = DBI->connect(
</strong>  106:         $new_dsn, $args{'User'}, $args{'Password'}
  107:     ) or croak "Connect Failed $DBI::errstr\n";
  108: 
</code></pre><p><a class="" id="toggle-arg-2" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in RT::Handle::Connect at /var/opt/rt-4.2.1/sbin/../lib/RT/Handle.pm line 124<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>  121:     }
  122: 
  123:     $self->SUPER::Connect(
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">  124:         User => RT->Config->Get('DatabaseUser'),
</strong>  125:         Password => RT->Config->Get('DatabasePassword'),
  126:         DisconnectHandleOnDestroy => 1,
  127:         %args,
</code></pre><p><a class="" id="toggle-arg-3" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in RT::ConnectToDatabase at /var/opt/rt-4.2.1/sbin/../lib/RT.pm line 210<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>  207: sub ConnectToDatabase {
  208:     require RT::Handle;
  209:     $Handle = RT::Handle->new unless $Handle;
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">  210:     $Handle->Connect;
</strong>  211:     return $Handle;
  212: }
  213: 
</code></pre></li><li class="" style="font-size:small;margin-top:3em">in RT::Interface::Web::Handler::__ANON__ at /var/opt/rt-4.2.1/sbin/../lib/RT/Interface/Web/Handler.pm line 278<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>  275:             return $self->_psgi_response_cb( $res->finalize ) if $res;
  276:         }
  277: 
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">  278:         RT::ConnectToDatabase() unless RT->InstallMode;
</strong>  279: 
  280:         my $req = Plack::Request->new($env);
  281: 
</code></pre><p><a class="" id="toggle-arg-5" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in Plack::Middleware::Static::call at /usr/local/share/perl5/Plack/Middleware/Static.pm line 18<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>   15:         return $res;
   16:     }
   17: 
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   18:     return $self->app->($env);
</strong>   19: }
   20: 
   21: sub _handle_static {
</code></pre><p><a class="" id="toggle-arg-6" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in Plack::Component::__ANON__ at /usr/local/share/perl5/Plack/Component.pm line 50<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>   47: sub to_app {
   48:     my $self = shift;
   49:     $self->prepare_app;
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   50:     return sub { $self->call(@_) };
</strong>   51: }
   52: 
   53: 
</code></pre><p><a class="" id="toggle-arg-7" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in Plack::Middleware::Static::call at /usr/local/share/perl5/Plack/Middleware/Static.pm line 18<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>   15:         return $res;
   16:     }
   17: 
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   18:     return $self->app->($env);
</strong>   19: }
   20: 
   21: sub _handle_static {
</code></pre><p><a class="" id="toggle-arg-8" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in Plack::Component::__ANON__ at /usr/local/share/perl5/Plack/Component.pm line 50<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>   47: sub to_app {
   48:     my $self = shift;
   49:     $self->prepare_app;
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   50:     return sub { $self->call(@_) };
</strong>   51: }
   52: 
   53: 
</code></pre><p><a class="" id="toggle-arg-9" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in Plack::Middleware::Lint::call at /usr/local/share/perl5/Plack/Middleware/Lint.pm line 24<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>   21:     my $env = shift;
   22: 
   23:     $self->validate_env($env);
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   24:     my $res = $self->app->($env);
</strong>   25:     return $self->validate_res($res);
   26: }
   27: 
</code></pre><p><a class="" id="toggle-arg-10" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in Plack::Middleware::StackTrace::__ANON__ at /usr/local/share/perl5/Plack/Component.pm line 50<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>   47: sub to_app {
   48:     my $self = shift;
   49:     $self->prepare_app;
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   50:     return sub { $self->call(@_) };
</strong>   51: }
   52: 
   53: 
</code></pre></li><li class="" style="font-size:small;margin-top:3em">in (eval) at /usr/local/share/perl5/Try/Tiny.pm line 78<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>   75:     $@ = $prev_error;
   76: 
   77:     # evaluate the try block in the correct context
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   78:     if ( $wantarray ) {
</strong>   79:       @ret = $try->();
   80:     } elsif ( defined $wantarray ) {
   81:       $ret[0] = $try->();
</code></pre></li><li class="" style="font-size:small;margin-top:3em">in Plack::Middleware::StackTrace::call at /usr/local/share/perl5/Try/Tiny.pm line 74<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>   71: 
   72:   # failed will be true if the eval dies, because 1 will not be returned
   73:   # from the eval body
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   74:   my $failed = not eval {
</strong>   75:     $@ = $prev_error;
   76: 
   77:     # evaluate the try block in the correct context
</code></pre><p><a class="" id="toggle-arg-13" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in Plack::Component::__ANON__ at /usr/local/share/perl5/Plack/Component.pm line 50<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>   47: sub to_app {
   48:     my $self = shift;
   49:     $self->prepare_app;
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   50:     return sub { $self->call(@_) };
</strong>   51: }
   52: 
   53: 
</code></pre><p><a class="" id="toggle-arg-14" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in Plack::Middleware::AccessLog::call at /usr/local/share/perl5/Plack/Middleware/AccessLog.pm line 24<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>   21:     my $self = shift;
   22:     my($env) = @_;
   23: 
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   24:     my $res = $self->app->($env);
</strong>   25: 
   26:     if ( ref($res) && ref($res) eq 'ARRAY' ) {
   27:         my $content_length = Plack::Util::content_length($res->[2]);
</code></pre><p><a class="" id="toggle-arg-15" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in Plack::Component::__ANON__ at /usr/local/share/perl5/Plack/Component.pm line 50<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>   47: sub to_app {
   48:     my $self = shift;
   49:     $self->prepare_app;
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   50:     return sub { $self->call(@_) };
</strong>   51: }
   52: 
   53: 
</code></pre><p><a class="" id="toggle-arg-16" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in (eval) at /usr/local/share/perl5/Plack/Util.pm line 142<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>  139: sub run_app($$) {
  140:     my($app, $env) = @_;
  141: 
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">  142:     return eval { $app->($env) } || do {
</strong>  143:         my $body = "Internal Server Error";
  144:         $env->{'psgi.errors'}->print($@);
  145:         [ 500, [ 'Content-Type' => 'text/plain', 'Content-Length' => length($body) ], [ $body ] ];
</code></pre></li><li class="" style="font-size:small;margin-top:3em">in Plack::Util::run_app at /usr/local/share/perl5/Plack/Util.pm line 142<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>  139: sub run_app($$) {
  140:     my($app, $env) = @_;
  141: 
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">  142:     return eval { $app->($env) } || do {
</strong>  143:         my $body = "Internal Server Error";
  144:         $env->{'psgi.errors'}->print($@);
  145:         [ 500, [ 'Content-Type' => 'text/plain', 'Content-Length' => length($body) ], [ $body ] ];
</code></pre><p><a class="" id="toggle-arg-18" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in Plack::Handler::FCGI::run at /usr/local/share/perl5/Plack/Handler/FCGI.pm line 134<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>  131:             $env->{HTTP_AUTHORIZATION} = $HTTP_AUTHORIZATION;
  132:         }
  133: 
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">  134:         my $res = Plack::Util::run_app $app, $env;
</strong>  135: 
  136:         if (ref $res eq 'ARRAY') {
  137:             $self->_handle_response($res);
</code></pre><p><a class="" id="toggle-arg-19" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in Plack::Loader::run at /usr/local/share/perl5/Plack/Loader.pm line 84<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>   81: 
   82: sub run {
   83:     my($self, $server, $builder) = @_;
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   84:     $server->run($self->{app});
</strong>   85: }
   86: 
   87: 1;
</code></pre><p><a class="" id="toggle-arg-20" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">in Plack::Runner::run at /usr/local/share/perl5/Plack/Runner.pm line 277<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>  274:     $loader->preload_app($app);
  275: 
  276:     my $server = $self->load_server($loader);
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">  277:     $loader->run($server);
</strong>  278: }
  279: 
  280: 1;
</code></pre><p><a class="" id="toggle-arg-21" style="color:rgb(68,68,68)">Show function arguments</a></p></li><li class="" style="font-size:small;margin-top:3em">at /usr/local/bin/plackup line 10<pre class="" style="border:1px solid rgb(170,170,170);padding:0.2em 0px;color:rgb(68,68,68);font-size:medium">
<code>    7: 
    8: my $runner = Plack::Runner->new;
    9: $runner->parse_options(@ARGV);
<strong class="" style="color:rgb(0,0,0);background-color:rgb(255,153,153)">   10: $runner->run;
</strong>   11: 
   12: __END__
   13: </code></pre></li></ol></div></div>