Roundcube Backup Error

ZipperZapper

Verified User
Joined
Nov 30, 2015
Messages
142
Since about a week, my regular Admin Backups don't work anymore.
Today I finally had the time to check the error log and it's trowing errors for Roundcube database.

This makes sense, because I'm not using Roundcube and it's set to "No" in Custombuild options.
Is this a bug in the backup script, or is there something I can do to fix this?

The Admin Backup settings are set to "All Data".

Code:
RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128

RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128

RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128

RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128

RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128

RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128


 <16:01:36>
RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128

RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128

RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128

RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128

RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128


 <16:02:29>
RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128
 
What OS?
Did you look to see if there was a old roundcube DB in mysql?

Might be a bug
 
The OS is Ubuntu 18.04.

I haven't used Roundcube (or Squirrelmail for that matter) in years, so I don't know what changed in recent weeks. Nothing from my side, other then regular Custombuild and Ubuntu updates.
 
I have exactly this same error from 2 days, I don't have roundcube installed. I run Debian 11 with latest updates. Last days I updated only PHP 8.0 and 8.1, nothing else.
 
Any one have idea how to fix this without installing roundcube?
 
Looks like there is some bug in the cb ./build roundcube

I get this error on Debian 11

Roundcube 1.5.2 has been installed successfully.
/usr/bin/env: 'php': No such file or directory
Reloading php-fpm74.
Some thing related to php?
@fln @smtalk

What weird is no issue on other system
 
Last edited:
I encountered this problem now on a Debian 10 server (recently upgraded from 9). Recompiling every piece of software to resolve a problem with a backup script seems a little overkill. I too have roundcube=no in my options.conf. Did anyone find out exactly what causes this? When this server was Debian 9, this error did not happen.

Code:
An error occurred during the backup
2022-09-21 16:36
RoundCube Backup Error:
Fatal error: Uncaught mysqli_sql_exception: Unknown database 'da_roundcube' in /usr/local/directadmin/scripts/backup_roundcube.php:128
Stack trace:
#0 /usr/local/directadmin/scripts/backup_roundcube.php(128): mysqli->select_db('da_roundcube')
#1 {main}
  thrown in /usr/local/directadmin/scripts/backup_roundcube.php on line 128

 <16:36:42>

The code in question seems to actually be there to skip backing up the Roundcube database, if one doesn't exist, so it's a bit of a silly place to have a fatal error:
Code:
128: if (!$mysqli->select_db($mysql_db))
129: {
130:    echo_stderr("There is no $mysql_db database. Skipping RoundCube backup.\n");
131:    exit(1);
132: }
 
After a little bit of extra thinking (it's late in the day for me) and testing, this is related to having PHP 8.1 set as php1_release. After I changed the #! of the script to use PHP 7.4 instead (didn't try 8.0), the backup worked:

Code:
# head -3 /usr/local/directadmin/scripts/backup_roundcube.php
#!/usr/local/php74/bin/php -c/usr/local/directadmin/scripts/php_clean.ini
# Old #!: #!/usr/local/bin/php -c/usr/local/directadmin/scripts/php_clean.ini
<?php

My guess is, there's something about ->select_db that has changed from 7.4 to 8.x to cause a fatal error, and this script needs to be updated accordingly. :)
 
php8 will be strct mode. it different from php7

extracly mysqli will use Exception handle mode by default, so any error will not silencely.
did you guy use php_mode1 with php8 ?


also that you mention not correct way to check Database exists

real code should use query to get result like this.
Code:
SHOW DATABASES LIKE '$dbname'

this should fixed from DA Team to be fixed with good coding. not "select_db" method, it bad idea.

@smtalk
 
This is still happening (Debian 11, latest DA & co, no roundcube installed). Please can someone fix the script in question? The resulting message in the message system about "An error occurred during the backup" does not indicate that the backup was completed (even though it appears to be). My script that triggers these backups is looking for messages about backups being completed (or failed, like it is now) and is unable to safely continue its process when this happens.
 
Back
Top