Zimbra Error Table 'mail_item' is read only"

Discuss your pilot or production implementation with other Zimbra admins or our engineers.
Post Reply
User avatar
emnzava
Advanced member
Advanced member
Posts: 53
Joined: Sat Sep 13, 2014 1:28 am
ZCS/ZD Version: 9.0.0.GA_P11 UB 14 Network Edition
Contact:

Zimbra Error Table 'mail_item' is read only"

Post by emnzava »

Hi,

Am getting this error in the log despite that all zimbra services are working normal.

The only challenge is that when i try to send emails i cant see it in sent folder or at the destination account. In the logs it says "Temporary message delivery failure try again (DATA)"


This is what i see in when i tail -f /opt/zimbra/log/mailbox.log

Code: Select all

java thread: ScheduledTask-1
	at org.mariadb.jdbc.internal.util.LogQueryTool.exceptionWithQuery(LogQueryTool.java:163)
	at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:292)
	at org.mariadb.jdbc.ClientSidePreparedStatement.executeInternal(ClientSidePreparedStatement.java:221)
	... 26 more
2021-04-21 05:47:31,116 INFO  [ScheduledTask-2] [] cache - initializing folder and tag caches for mailbox 986
2021-04-21 05:47:31,135 INFO  [ScheduledTask-2] [] mailop - Adding Message: id=6260, Message-ID=<884731058.1492842.1618575336559.JavaMail.zimbra@xxxxx>, parentId=-1, folderId=5, folderName=Sent acct=932cdbbd-7e60-4b14-8042-0614a8876434.
2021-04-21 05:47:31,137 INFO  [ScheduledTask-2] [] cache - initializing folder and tag caches for mailbox 986
2021-04-21 05:47:31,140 WARN  [ScheduledTask-2] [] filter - An error occurred while processing filter rules. Filing message to /Sent.
com.zimbra.cs.filter.ZimbraSieveException
	at com.zimbra.cs.filter.ZimbraMailAdapter.executeAllActions(ZimbraMailAdapter.java:319)
	at com.zimbra.cs.filter.RuleManager.applyRulesToOutgoingMessage(RuleManager.java:496)
	at com.zimbra.cs.mailbox.MailSender.sendMimeMessage(MailSender.java:624)
	at com.zimbra.cs.mailbox.AutoSendDraftTask.call(AutoSendDraftTask.java:76)
	at com.zimbra.cs.mailbox.AutoSendDraftTask.call(AutoSendDraftTask.java:29)
	at com.zimbra.common.util.TaskScheduler$TaskRunner.call(TaskScheduler.java:79)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:830)
Caused by: com.zimbra.common.service.ServiceException: system failure: Failed to create id=6260,type=5
ExceptionId:ScheduledTask-2:1618973251137:505e1e8fefb09690
Code:service.FAILURE
	at com.zimbra.common.service.ServiceException.FAILURE(ServiceException.java:288)
	at com.zimbra.cs.db.DbMailItem.create(DbMailItem.java:211)
	at com.zimbra.cs.mailbox.Message.createInternal(Message.java:606)
	at com.zimbra.cs.mailbox.Message.create(Message.java:527)
	at com.zimbra.cs.mailbox.Mailbox.addMessageInternal(Mailbox.java:6386)
	at com.zimbra.cs.mailbox.Mailbox.addMessage(Mailbox.java:6186)
	at com.zimbra.cs.mailbox.Mailbox.addMessage(Mailbox.java:6103)
	at com.zimbra.cs.mailbox.Mailbox.addMessage(Mailbox.java:6098)
	at com.zimbra.cs.filter.OutgoingMessageHandler.explicitKeep(OutgoingMessageHandler.java:102)
	at com.zimbra.cs.filter.OutgoingMessageHandler.implicitKeep(OutgoingMessageHandler.java:146)
	at com.zimbra.cs.filter.ZimbraMailAdapter.keep(ZimbraMailAdapter.java:540)
	at com.zimbra.cs.filter.ZimbraMailAdapter.executeActionKeepInternal(ZimbraMailAdapter.java:362)
	at com.zimbra.cs.filter.ZimbraMailAdapter.executeAllActions(ZimbraMailAdapter.java:297)
	... 10 more
Caused by: java.sql.SQLException: (conn=3) Table 'mail_item' is read only
	at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.get(ExceptionMapper.java:261)
	at org.mariadb.jdbc.internal.util.exceptions.ExceptionMapper.getException(ExceptionMapper.java:171)
	at org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:248)
	at org.mariadb.jdbc.ClientSidePreparedStatement.executeInternal(ClientSidePreparedStatement.java:230)
	at org.mariadb.jdbc.ClientSidePreparedStatement.execute(ClientSidePreparedStatement.java:157)
	at org.mariadb.jdbc.ClientSidePreparedStatement.executeUpdate(ClientSidePreparedStatement.java:192)
	at com.zimbra.cs.db.DebugPreparedStatement.executeUpdate(DebugPreparedStatement.java:179)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
	at com.zimbra.cs.db.StatTrackingPreparedStatement.executeUpdate(StatTrackingPreparedStatement.java:360)
	at com.zimbra.cs.db.DbMailItem.create(DbMailItem.java:199)
	... 21 more
Caused by: java.sql.SQLException: Table 'mail_item' is read only
Query is: INSERT INTO mboxgroup86.mail_item(mailbox_id,  id, type, parent_id, folder_id, index_id, imap_id, date, size, locator, blob_digest, unread, flags, tag_names, sender, recipients, subject, name, metadata, mod_metadata, change_date, mod_content, uuid) VALUES
Tried to login mysql and use mboxgroup86 as seen in the logs but table seems to be OK.

Code: Select all

$ mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 53
Server version: 10.1.25-MariaDB Zimbra MariaDB binary distribution

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mboxgroup86;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mboxgroup86]> check table mail_item;
+-----------------------+-------+----------+----------+
| Table                 | Op    | Msg_type | Msg_text |
+-----------------------+-------+----------+----------+
| mboxgroup86.mail_item | check | status   | OK       |
+-----------------------+-------+----------+----------+
1 row in set (0.91 sec)

MariaDB [mboxgroup86]> 
How can i solve this so that i can send and receive emails?

Regards,
User avatar
JDunphy
Outstanding Member
Outstanding Member
Posts: 897
Joined: Fri Sep 12, 2014 11:18 pm
Location: Victoria, BC
ZCS/ZD Version: 9.0.0_P39 NETWORK Edition

Re: Zimbra Error Table 'mail_item' is read only"

Post by JDunphy »

Can you do something like this as root to see if any ownership issues:

Code: Select all

# cd /opt/zimbra
# find db \! -user zimbra -ls
I don't have a Zimbra 9 but the database files should all be owned by zimbra at some level given it has to write to these files so wild guess at the read-only table message

Code: Select all

% ps auxw | grep mysqld_safe
zimbra   16894  0.0  0.0   9692  2180 ?        S    Apr19   0:00 /bin/sh /opt/zimbra/common/bin/mysqld_safe --defaults-file=/opt/zimbra/conf/my.cnf --external-locking --log-error=/opt/zimbra/log/mysql_error.log --malloc-lib=/opt/zimbra/common/lib/libtcmalloc_minimal.so --ledir=/opt/zimbra/common/sbin
Jim
Post Reply