Yes, it is odd. But even so it will happen if the domain field is empty, for whatever reason. If the domain field is empty it will look for the vpopmail.users db which in our case doesn't exist.


On 11/7/2017 7:12 AM, Boheme wrote:
Well, I get why it was establishing a connection, as I had just restarted 
dovecot. Just seemed odd that it was trying to access a table that doesn’t 
exist. But if legacy code from before the table-per-domain refactoring if the 
vpopmail DB layout?

-Sent from my Pip-Boy 3000

On Nov 7, 2017, at 5:08 AM, Eric Broch <ebr...@whitehorsetc.com> wrote:

Here's the explanation in the code as a result of the 'mysql_query' and 
'mysql_error' call:

     if (mysql_query(&mysql_read,SqlBufRead)) {
         fprintf(stderr, "vmysql: sql error[3]: %s\n", 
mysql_error(&mysql_read));
         /*  - May 29, 2006 - With newer versions of MySQL, there is such a 
thing
         as a connection timeout regardless of activity.  By default under 
MySQL 5, this
         timeout is 28800 seconds (8 hours).  If your vpopmail system runs fine 
for the
         first 8 hours, then stops authenticating, this timeout is your problem 
(especially
         under authdaemond).

         What this code does is when an error is encountered, it first tries to 
drop and
         rebuild a connection to the SQL server and tries again.  If this 
second attempt
         fails, then something other than the connection timeout is the 
problem.  This fix
         need to be implemented in other places but in my setup (Slackware 
10.2, netqmail,
         vpopmail, courier-authdaemond, courier-imapd and a few others), this 
is always where
         the auth attempt died with a "SQL server has gone away" error.
         */

         fprintf(stderr, "Attempting to rebuild connection to SQL server\n");
         vclose();
         verrori = 0;
         if ( (err=vauth_open_read()) != 0 ) {
           verrori = err;
           return(NULL);
         }
         if (mysql_query(&mysql_read, SqlBufRead)) {
           fprintf (stderr, "vmysql: connection rebuild failed: %s\n", 
mysql_error(&mysql_read));
           return(NULL);
         }
     }

Not sure why mysql (mariadb) would return this error.

Eric


On 11/7/2017 5:47 AM, Eric Broch wrote:
That's a good question, Chris. I'll have to delve into the code.


On 11/6/2017 9:57 PM, Chris wrote:
Given that the new DB structure for vpopmail involves having a separate table 
for each domain, I thought seeing this in my dovecot.log was a little weird:

Nov 06 20:53:43 auth-worker: Error: vmysql: sql error[3]: Table 
'vpopmail.users' doesn't exist
Nov 06 20:53:43 auth-worker: Error: Attempting to rebuild connection to SQL 
server
Nov 06 20:53:43 auth-worker: Error: vmysql: connection rebuild failed: Table 
'vpopmail.users' doesn't exist

Any idea why vmysql is trying to access the users table in the vpopmail db, 
given that it doesn't exist?

-Chris
--
Eric Broch
White Horse Technical Consulting (WHTC)


---------------------------------------------------------------------
To unsubscribe, e-mail: qmailtoaster-list-unsubscr...@qmailtoaster.com
For additional commands, e-mail: qmailtoaster-list-h...@qmailtoaster.com

---------------------------------------------------------------------
To unsubscribe, e-mail: qmailtoaster-list-unsubscr...@qmailtoaster.com
For additional commands, e-mail: qmailtoaster-list-h...@qmailtoaster.com


--
Eric Broch
White Horse Technical Consulting (WHTC)


---------------------------------------------------------------------
To unsubscribe, e-mail: qmailtoaster-list-unsubscr...@qmailtoaster.com
For additional commands, e-mail: qmailtoaster-list-h...@qmailtoaster.com

Reply via email to