Uncaught mysqli_sql_exception: Data truncated for column 'warnvirusrecip'

etron770

Member
Debian Buster
PHP 8.2
ISPConfig 3.2.9p1
Multiserver

Das Thema wurde im englischen Forum behandelt, aber ohne richtige Lösung. https://forum.howtoforge.com/thread...ted-for-column-warnvirusrecip-at-row-1.90116/
Bei mir wurde es durch einen Resync aller Mail Einträge verursacht.

Ich habe mir die Tabellen des Master angesehen, die Tabelle exportiert:
Code:
-- phpMyAdmin SQL Dump
-- version 4.6.6deb4+deb9u2
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3306
-- Erstellungszeit: 17. Mai 2023 um 16:48
-- Server-Version: 10.3.38-MariaDB-0+deb10u1-log
-- PHP-Version: 7.0.33-0+deb9u10

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Datenbank: `dbispconfig`
--

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `spamfilter_policy`
--

CREATE TABLE `spamfilter_policy` (
  `id` int(11) UNSIGNED NOT NULL,
  `sys_userid` int(11) UNSIGNED NOT NULL DEFAULT 0,
  `sys_groupid` int(11) UNSIGNED NOT NULL DEFAULT 0,
  `sys_perm_user` varchar(5) NOT NULL DEFAULT '',
  `sys_perm_group` varchar(5) NOT NULL DEFAULT '',
  `sys_perm_other` varchar(5) NOT NULL DEFAULT '',
  `policy_name` varchar(64) DEFAULT NULL,
  `virus_lover` enum('N','Y') NOT NULL DEFAULT 'N',
  `spam_lover` enum('N','Y') NOT NULL DEFAULT 'N',
  `banned_files_lover` enum('N','Y') NOT NULL DEFAULT 'N',
  `bad_header_lover` enum('N','Y') NOT NULL DEFAULT 'N',
  `bypass_virus_checks` enum('N','Y') NOT NULL DEFAULT 'N',
  `bypass_spam_checks` enum('N','Y') NOT NULL DEFAULT 'N',
  `bypass_banned_checks` enum('N','Y') NOT NULL DEFAULT 'N',
  `bypass_header_checks` enum('N','Y') NOT NULL DEFAULT 'N',
  `spam_modifies_subj` enum('N','Y') NOT NULL DEFAULT 'N',
  `virus_quarantine_to` varchar(255) DEFAULT NULL,
  `spam_quarantine_to` varchar(255) DEFAULT NULL,
  `banned_quarantine_to` varchar(255) DEFAULT NULL,
  `bad_header_quarantine_to` varchar(255) DEFAULT NULL,
  `clean_quarantine_to` varchar(255) DEFAULT NULL,
  `other_quarantine_to` varchar(255) DEFAULT NULL,
  `spam_tag_level` decimal(5,2) DEFAULT NULL,
  `spam_tag2_level` decimal(5,2) DEFAULT NULL,
  `spam_kill_level` decimal(5,2) DEFAULT NULL,
  `spam_dsn_cutoff_level` decimal(5,2) DEFAULT NULL,
  `spam_quarantine_cutoff_level` decimal(5,2) DEFAULT NULL,
  `addr_extension_virus` varchar(64) DEFAULT NULL,
  `addr_extension_spam` varchar(64) DEFAULT NULL,
  `addr_extension_banned` varchar(64) DEFAULT NULL,
  `addr_extension_bad_header` varchar(64) DEFAULT NULL,
  `warnvirusrecip` enum('N','Y') NOT NULL DEFAULT 'N',
  `warnbannedrecip` enum('N','Y') NOT NULL DEFAULT 'N',
  `warnbadhrecip` enum('N','Y') NOT NULL DEFAULT 'N',
  `newvirus_admin` varchar(64) DEFAULT NULL,
  `virus_admin` varchar(64) DEFAULT NULL,
  `banned_admin` varchar(64) DEFAULT NULL,
  `bad_header_admin` varchar(64) DEFAULT NULL,
  `spam_admin` varchar(64) DEFAULT NULL,
  `spam_subject_tag` varchar(64) DEFAULT NULL,
  `spam_subject_tag2` varchar(64) DEFAULT NULL,
  `message_size_limit` int(11) UNSIGNED DEFAULT NULL,
  `banned_rulenames` varchar(64) DEFAULT NULL,
  `policyd_quota_in` int(11) NOT NULL DEFAULT -1,
  `policyd_quota_in_period` int(11) NOT NULL DEFAULT 24,
  `policyd_quota_out` int(11) NOT NULL DEFAULT -1,
  `policyd_quota_out_period` int(11) NOT NULL DEFAULT 24,
  `policyd_greylist` enum('Y','N') NOT NULL DEFAULT 'N',
  `rspamd_greylisting` enum('n','y') NOT NULL DEFAULT 'n',
  `rspamd_spam_greylisting_level` decimal(5,2) DEFAULT NULL,
  `rspamd_spam_tag_level` decimal(5,2) DEFAULT NULL,
  `rspamd_spam_tag_method` enum('add_header','rewrite_subject') NOT NULL DEFAULT 'rewrite_subject',
  `rspamd_spam_kill_level` decimal(5,2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

--
-- Daten für Tabelle `spamfilter_policy`
--

INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `policyd_quota_in`, `policyd_quota_in_period`, `policyd_quota_out`, `policyd_quota_out_period`, `policyd_greylist`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES
(1, 1, 0, 'riud', 'riud', 'r', 'Non-paying', 'N', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', '', '', '', '', '', '', '3.00', '7.00', '10.00', '0.00', '0.00', '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '', '', 0, '', -1, 24, -1, 24, 'N', 'n', '6.00', '8.00', 'rewrite_subject', '12.00'),
(2, 1, 0, 'riud', 'riud', 'r', 'Uncensored', 'N', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', NULL, NULL, NULL, NULL, NULL, NULL, '3.00', '999.00', '999.00', NULL, NULL, NULL, NULL, NULL, NULL, '', '', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -1, 24, -1, 24, 'N', 'n', '999.00', '999.00', 'rewrite_subject', '999.00'),
(3, 1, 0, 'riud', 'riud', 'r', 'Wants all spam', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, '3.00', '999.00', '999.00', NULL, NULL, NULL, NULL, NULL, NULL, '', '', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -1, 24, -1, 24, 'N', 'n', '999.00', '999.00', 'rewrite_subject', '999.00'),
(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', '1.00', '4.50', '50.00', '0.00', '10.00', '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '***SPAM***', '', 0, '', -1, 24, -1, 24, 'N', 'y', '4.00', '6.00', 'rewrite_subject', '10.00'),
(6, 1, 0, 'riud', 'riud', 'r', 'Trigger happy', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', '3.00', '5.00', '5.00', '0.00', '0.00', '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '###SPAM###', '', 0, '', -1, 24, -1, 24, 'N', 'y', '2.00', '4.00', 'rewrite_subject', '8.00'),
(7, 1, 0, 'riud', 'riud', 'r', 'Permissive', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', '3.00', '10.00', '20.00', '0.00', '0.00', '', '', '', '', 'Y', 'Y', 'Y', '', '', '', '', '', '###SPAM###', '', 0, '', -1, 24, -1, 24, 'N', 'n', '7.00', '10.00', 'rewrite_subject', '20.00');

--
-- Indizes der exportierten Tabellen
--

--
-- Indizes für die Tabelle `spamfilter_policy`
--
ALTER TABLE `spamfilter_policy`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT für exportierte Tabellen
--

--
-- AUTO_INCREMENT für Tabelle `spamfilter_policy`
--
ALTER TABLE `spamfilter_policy`
  MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Wenn ich diese wieder in eine neue Datenbank einfüge, kommen einige Warnungen:
Code:
 [IMG]https://web2.three-greens.de/sql55admin/themes/dot.gif[/IMG] Warning: #1265 Daten abgeschnitten für Feld 'warnvirusrecip' in Zeile 2

 [IMG]https://web2.three-greens.de/sql55admin/themes/dot.gif[/IMG] Warning: #1265 Daten abgeschnitten für Feld 'warnbannedrecip' in Zeile 2

 [IMG]https://web2.three-greens.de/sql55admin/themes/dot.gif[/IMG] Warning: #1265 Daten abgeschnitten für Feld 'warnbadhrecip' in Zeile 2

 [IMG]https://web2.three-greens.de/sql55admin/themes/dot.gif[/IMG] Warning: #1265 Daten abgeschnitten für Feld 'warnvirusrecip' in Zeile 3

 [IMG]https://web2.three-greens.de/sql55admin/themes/dot.gif[/IMG] Warning: #1265 Daten abgeschnitten für Feld 'warnbannedrecip' in Zeile 3

 [IMG]https://web2.three-greens.de/sql55admin/themes/dot.gif[/IMG] Warning: #1265 Daten abgeschnitten für Feld 'warnbadhrecip' in Zeile 3
Das pass mneiner Ansicht nach zu den Fehlermeldungen beim Aufruf von .../server.sh:
Code:
Set Lock: /usr/local/ispconfig/server/temp/.ispconfig_lock
17.05.2023-14:50 - DEBUG [plugins.inc:155] - Calling function 'check_phpini_changes' from plugin 'webserver_plugin' raised by action 'server_plugins_loaded'.
17.05.2023-14:50 - DEBUG [server:177] - Found 26 changes, starting update process.
PHP Fatal error:  Uncaught mysqli_sql_exception: Data truncated for column 'warnvirusrecip' at row 1 in /usr/local/ispconfig/server/lib/classes/db_mysql.inc.php:302
Stack trace:
#0 /usr/local/ispconfig/server/lib/classes/db_mysql.inc.php(302): mysqli_query()
#1 /usr/local/ispconfig/server/lib/classes/db_mysql.inc.php(339): db->_query()
#2 /usr/local/ispconfig/server/lib/classes/modules.inc.php(171): db->query()
#3 /usr/local/ispconfig/server/server.php(180): modules->processDatalog()
#4 {main}
  thrown in /usr/local/ispconfig/server/lib/classes/db_mysql.inc.php on line 302
 

Till

Administrator
Google mal nach "mysql Data truncated for column" dann hast Du die Beschreibung was das Problem ist, datentyp passt nicht zu den Daten. Musst Du auf dem betroffenen Server mal schauen was genau der Spaltentyp ist und was er da einfügen will und warum das auf dem betroffenen server nicht passt und dann Daten anpassen. Wert kann ja laut tabellendefinition nur N oder Y sein und vermutlich ist das feld leer oder null.
 

etron770

Member
Hallo Till, danke für die Antwort. Das ist mir schon bewusst.
Wenn ich das richtig verstehe,wird bei einem Resync die Datenbank vom Master auf den Slave synchronisiert.
Also habe ich die Tabelle spamfilter_policy vom Master exportiert und in einer Testdatenbank (leer) importiert. Ein Export und Import sollte doch immer fehlerfrei funktionieren
Da tritt dann auch schon der Fehler sechsmal auf. Daraus entnehme ich, dass etwas an der Master-Datenbank fehlerhaft ist.
Daten in dieser Tabelle habe ich noch nie geändert, also müsste über die Jahre ein Upgrade fehlgeschlagen haben. Da es noch mindestens einen anderen Nutzer gibt, der das Problem hat, ist unwahrscheinlich, dass wir denselben Fehler durchgeführt haben.
Als Lösung würde ich nun die Tabelle aus einer Neuinstallation nehmen und sie am Master und am fehlerhaften Slave einlesen und dann den Resync versuchen.
Eventuell könntest du auch die SQL Befehle zum Neueinlesen hier Posten, wenn dir der Vorgang sinnvoll erscheint. Das würde aus meiner Sicht sicherer sein, als die unveränderte Tabelle manuell anzupassen.
Es sieht so aus (siehe SQLDump oben) als ob die Einträge am master "Wants all spam" und "Uncensored" fehlerhaft (NULL) sind. Wie das aber passieren kann, ist mir völlig unklar.
 

etron770

Member
Nur die Datenbank zu ändern, hilft nichts, die Tabelle spamfilter_policy vom Master und Slave entsprechen genau der einer Neuinstallation:

Wo finde ich die SQL Abfrage, die hier versucht auf den Slave zuzgreifen?
die aktive Jobwareschlange ist Tabelle Server - Update?
Wenn ja, dann sind dort alle ungleich 0
Code:
17.05.2023 12:42     slave2.myserver.de     Update     spamfilter_users
Code:
usr/local/ispconfig/server/server.sh
Set Lock: /usr/local/ispconfig/server/temp/.ispconfig_lock
19.05.2023-14:10 - DEBUG [plugins.inc:155] - Calling function 'check_phpini_changes' from plugin 'webserver_plugin' raised by action 'server_plugins_loaded'.
19.05.2023-14:10 - DEBUG [server:177] - Found 26 changes, starting update process.
PHP Fatal error:  Uncaught mysqli_sql_exception: Data truncated for column 'warnvirusrecip' at row 1 in /usr/local/ispconfig/server/lib/classes/db_mysql.inc.php:302
Stack trace:
#0 /usr/local/ispconfig/server/lib/classes/db_mysql.inc.php(302): mysqli_query()
#1 /usr/local/ispconfig/server/lib/classes/db_mysql.inc.php(339): db->_query()
#2 /usr/local/ispconfig/server/lib/classes/modules.inc.php(171): db->query()
#3 /usr/local/ispconfig/server/server.php(180): modules->processDatalog()
#4 {main}
  thrown in /usr/local/ispconfig/server/lib/classes/db_mysql.inc.php on line 302
 

Till

Administrator
Erhöhe den Wert in der Spalte 'updated' der 'server' Tabelle für diesen slave server um 1 (und ggf. mehrfach um 1) um den in der queue hängenden job zu überspringen. kann sein dass Du es auf Slave und master eintragen musst, probier aber erstmal es nur auf dem master zu ändern.
 

etron770

Member
Meine Lösung, die nun den Fehler behoben hat (ob das nun für https://forum.howtoforge.com/thread...ted-for-column-warnvirusrecip-at-row-1.90116/ hilfreich ist, weiß nur Till :)).

  • Die Daten der DB Tabelle spamfilter_policy vom Master und Slave1 (beides die ältesten VMs) haben sich von allen anderen VMs unterschieden. Die anderen Vms hatten die Version, die bei der Installation derzeit installiert wird.
  • Ich habe die Tabelle und die Daten auf Master und Slave1 gelöscht, erstellt und neu eingelesen (SQL Dump aus der Installationsdatei).
  • Dann habe ich den Wert von System.update (Master) mehrfach um1 erhöht. Server.Sh ausgeführt. Bei Mißerfolg auch den Wert vom Slave1 erhöht. Server.sh ausgeführt. Bei Mißerfolg zurück zum Master.


    Hier wurden zuerst einige fehlerhafte SQL Abfragen angezeigt, die letzte hat dann die Datenbank aktualisiert und die Anzahl der wartenden Jobs im Webinterface waren auf 0
 

Werbung

Top