Re: backupd IOERROR reading backup files larger than 2GB

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Carlos,

Sudden overnight intuition, and I think this will fix the issue -- the problem isn't that the lseek is failing at >2GB; the problem is that its off_t return value is being truncated to an int before being checked to see if it's negative for the error case (so any "I succeeded, the offset is > 2GB" response looks like "negative, it's an error"). Doh!

I think this will fix the immediate issue:
https://github.com/cyrusimap/cyrus-imapd/commit/63f8c09fa2076c0e2fa55436e071e3e341fe48b6

But then I found and fixed some similar ones:
https://github.com/cyrusimap/cyrus-imapd/commit/0930d3af4ed9bd44d328db8cfa4d9f2e2be7bada

Remains to be seen whether more similar issues pop up -- since no-one's tripped over this previously, I guess you're the first person to try this with a >2GB backup file :(

Cheers,

ellie

On Fri, Jun 14, 2019, at 3:50 PM, ellie timoney wrote:
Hi Carlos,

This is quite weird, I'm not sure why a 64bit platform would have any trouble around the 2GB mark??

What does the Cyrus ./configure report for your system's integer sizes?  e.g. mine shows:

checking size of int... 4
checking size of long... 8
checking size of size_t... 8
checking size of off_t... 8
checking size of time_t... 8
checking size of long long int... 8
checking size of unsigned long long int... 8
checking whether byte ordering is bigendian... no

What's your level of comfort with C debugging?  It'd be very helpful to see a core file+binary from the time that lseek error occurs?

Cheers,

ellie

On Fri, Jun 7, 2019, at 1:58 AM, Carlos Larrañaga wrote:
Hi Ellie,

Thanks for answering. We use latest 64bit Oracle Linux
(not CentOs like I said before, sorry) and zlib is also 64bit version:
# uname -a
Linux xxx 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 17:35:45 PDT 2019 x86_64 x86_64 x86_64 GNU/Linux

# yum list installed zlib
Loaded plugins: langpacks, ulninfo
Installed Packages
zlib.x86_64                     1.2.7-18.el7                      @ol7_latest

# lsof -p 17005 |grep lib |grep -i z
backupd 17005 cyrus  mem    REG              253,0      90248   134400930 /usr/lib64/libz.so.1.2.7

# file /usr/lib64/libz.so.1.2.7
/usr/lib64/libz.so.1.2.7: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=b9d5f73428bd6ad68c96986b57bea3b7cedb9745, stripped

# rpm -qf /usr/lib64/libz.so.1.2.7
zlib-1.2.7-18.el7.x86_64
I have summarized here some information about the backupd error reading the file descriptor 15, which is a backup larger than 2GB. The error is logged 1755 times. Instead, there is no error for fd 12, which is a backup of less than 2 GB:
#-- CLIENT SIDE
-----------------------------------------------


# time sync_client -v -o -n backup -A
Thu Jun  6 17:08:02 CEST 2019
USER aaa
QUOTA user.aaa
USER ccc
Error from do_user(ccc): bailing out!

real    30m16.223s
user    0m0.006s
sys     0m0.006s


#-- BACKUP SERVER SIDE ----------------------------------------
# LOGFILE

# tail -f /var/log/imapd.log
Jun  6 17:09:11 bcrux cyrus/backupd[2584]: IOERROR: gzuc_read: lseek 15: No such file or directory
Jun  6 17:09:11 bcrux cyrus/backupd[2584]: IOERROR: gzuc_read: lseek 15: No such file or directory
Jun  6 17:09:11 bcrux cyrus/backupd[2584]: IOERROR: gzuc_read: lseek 15: No such file or directory
Jun  6 17:09:11 bcrux cyrus/backupd[2584]: IOERROR: gzuc_read: lseek 15: No such file or directory


# lsof of the backupd PROCESS
# lsof -P -p 2584                     

COMMAND  PID  USER   FD   TYPE             DEVICE   SIZE/OFF        NODE NAME
backupd 2584 cyrus  cwd    DIR              253,0       4096         128 /
backupd 2584 cyrus  rtd    DIR              253,0       4096         128 /
backupd 2584 cyrus  txt    REG              253,0     768632   939542214 /usr/local/cyrus/libexec/backupd
backupd 2584 cyrus  mem    REG              253,0      37208   135746334 /usr/lib64/libnss_sss.so.2
backupd 2584 cyrus  mem    REG              253,0      31416   134406707 /usr/lib64/libnss_dns-2.17.so
backupd 2584 cyrus  mem    REG              253,0      61632   134406709 /usr/lib64/libnss_files-2.17.so
backupd 2584 cyrus  mem    REG              253,0      43336    68814977 /usr/lib64/sasl2/webmail.so.0.0.0
backupd 2584 cyrus  mem    REG              253,0      57960    68856627 /usr/lib64/sasl2/libdigestmd5.so.3.0.0
backupd 2584 cyrus  mem    REG              253,0      24232    68797220 /usr/lib64/sasl2/libcrammd5.so.3.0.0
backupd 2584 cyrus  mem    REG              253,0      20088    68797044 /usr/lib64/sasl2/libplain.so.3.0.0
backupd 2584 cyrus  mem    REG              253,0      20056    68797036 /usr/lib64/sasl2/liblogin.so.3.0.0
backupd 2584 cyrus  mem    REG              253,0    1845816   135873512 /usr/lib64/libdb-5.3.so
backupd 2584 cyrus  mem    REG              253,0      28272    67113426 /usr/lib64/sasl2/libsasldb.so.3.0.0
backupd 2584 cyrus  mem    REG              253,0      20064    67113423 /usr/lib64/sasl2/libanonymous.so.3.0.0
backupd 2584 cyrus  mem    REG              253,0      11448   135872733 /usr/lib64/libfreebl3.so
backupd 2584 cyrus  mem    REG              253,0     155784   134400716 /usr/lib64/libselinux.so.1
backupd 2584 cyrus  mem    REG              253,0      15464   134401447 /usr/lib64/libkeyutils.so.1.5
backupd 2584 cyrus  mem    REG              253,0      40672   134399432 /usr/lib64/libcrypt-2.17.so
backupd 2584 cyrus  mem    REG              253,0     105824   134781819 /usr/lib64/libresolv-2.17.so
backupd 2584 cyrus  mem    REG              253,0      53944   134406785 /usr/lib64/libjansson.so.4.10.0
backupd 2584 cyrus  mem    REG              253,0      88776   135352942 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
backupd 2584 cyrus  mem    REG              253,0    1137032   134400337 /usr/lib64/libm-2.17.so
backupd 2584 cyrus  mem    REG              253,0     991616   135352396 /usr/lib64/libstdc++.so.6.0.19
backupd 2584 cyrus  mem    REG              253,0      19296   134399434 /usr/lib64/libdl-2.17.so
backupd 2584 cyrus  mem    REG              253,0     142008   134722750 /usr/lib64/libpthread-2.17.so
backupd 2584 cyrus  mem    REG              253,0    2151704   134365659 /usr/lib64/libc-2.17.so
backupd 2584 cyrus  mem    REG              253,0     753232   134401161 /usr/lib64/libsqlite3.so.0.8.6
backupd 2584 cyrus  mem    REG              253,0      90248   134400930 /usr/lib64/libz.so.1.2.7
backupd 2584 cyrus  mem    REG              253,0      11128   134400947 /usr/lib64/libpcreposix.so.0.0.1
backupd 2584 cyrus  mem    REG              253,0     402384   134400940 /usr/lib64/libpcre.so.1.2.0
backupd 2584 cyrus  mem    REG              253,0      67104   135269427 /usr/lib64/libkrb5support.so.0.1
backupd 2584 cyrus  mem    REG              253,0      15920   135873508 /usr/lib64/libcom_err.so.2.1
backupd 2584 cyrus  mem    REG              253,0     210832   134781960 /usr/lib64/libk5crypto.so.3.1
backupd 2584 cyrus  mem    REG              253,0     967864   134781967 /usr/lib64/libkrb5.so.3.3
backupd 2584 cyrus  mem    REG              253,0     320400   134781952 /usr/lib64/libgssapi_krb5.so.2.2
backupd 2584 cyrus  mem    REG              253,0     115856   134400341 /usr/lib64/libnsl-2.17.so
backupd 2584 cyrus  mem    REG              253,0      42168   134401419 /usr/lib64/libwrap.so.0.7.6
backupd 2584 cyrus  mem    REG              253,0    2516640   134400708 /usr/lib64/libcrypto.so.1.0.2k
backupd 2584 cyrus  mem    REG              253,0     470360   134400711 /usr/lib64/libssl.so.1.0.2k
backupd 2584 cyrus  mem    REG              253,0     121208   134401258 /usr/lib64/libsasl2.so.3.0.0
backupd 2584 cyrus  mem    REG              253,0    2898664   838888996 /usr/local/cyrus/lib/libcyrus_imap.so.0.0.0
backupd 2584 cyrus  mem    REG              253,0     599528   838888999 /usr/local/cyrus/lib/libcyrus_sieve.so.0.0.0
backupd 2584 cyrus  mem    REG              253,0      20112   134406704 /usr/lib64/libuuid.so.1.3.0
backupd 2584 cyrus  mem    REG              253,0   20781704   136182553 /usr/lib64/libicudata.so.50.1.2
backupd 2584 cyrus  mem    REG              253,0    1539544   136197152 /usr/lib64/libicuuc.so.50.1.2
backupd 2584 cyrus  mem    REG              253,0     553264   838890012 /usr/local/cyrus/lib/libcyrus_min.so.0.0.0
backupd 2584 cyrus  mem    REG              253,0    1961968   838888994 /usr/local/cyrus/lib/libcyrus.so.0.0.0
backupd 2584 cyrus  mem    REG              253,0     163408   134355369 /usr/lib64/ld-2.17.so
backupd 2584 cyrus    0u  IPv4            2092952        0t0         TCP hostb1.upv.es:2005->host1.upv.es:27107 (ESTABLISHED)
backupd 2584 cyrus    1u  IPv4            2092952        0t0         TCP hostb1.upv.es:2005->host1.upv.es:27107 (ESTABLISHED)
backupd 2584 cyrus    2u  IPv4            2092952        0t0         TCP hostb1.upv.es:2005->host1.upv.es:27107 (ESTABLISHED)
backupd 2584 cyrus    3w  FIFO                0,9        0t0     2141764 pipe
backupd 2584 cyrus    4u  IPv4            2141763        0t0         TCP hostb1.upv.es:2005 (LISTEN)
backupd 2584 cyrus    5u   REG               0,20          0       86644 /run/cyrus-b1/socket/backupd-0.lock
backupd 2584 cyrus    6r  FIFO                0,9        0t0     2141754 pipe
backupd 2584 cyrus    7w  FIFO                0,9        0t0     2141754 pipe
backupd 2584 cyrus    8r  FIFO                0,9        0t0     2141755 pipe
backupd 2584 cyrus    9w  FIFO                0,9        0t0     2141755 pipe
backupd 2584 cyrus   10u  unix 0xffff9d9df53d4400        0t0     2093417 socket
backupd 2584 cyrus   11w   REG              253,5        680 18253611600 /b1/lib/log/admin/backupd-2584
backupd 2584 cyrus   12uW  REG              253,5  976281587 13958644353 /b1/bck/b1/a/aaa_ouuUx9
backupd 2584 cyrus   13ur  REG              253,5    3573760 13958644354 /b1/bck/b1/a/aaa_ouuUx9.index
backupd 2584 cyrus   14u   REG              253,5       2576 13958644355 /b1/bck/b1/a/aaa_ouuUx9.index-journal
backupd 2584 cyrus   15uW  REG              253,5 3104341527 12884902595 /b1/bck/b1/c/ccc_Mqmymx
backupd 2584 cyrus   16u   REG              253,5   47927296 12884902596 /b1/bck/b1/c/ccc_Mqmymx.index

# BACKUP SIZES
# ls -lh /b1/bck/b1/a/*
/b1/bck/b1/c/*      
-rw------- 1 cyrus mail 932M Jun  6 17:08
/b1/bck/b1/a/aaa_ouuUx9
-rw------- 1 cyrus mail 3.5M Jun  6 16:46
/b1/bck/b1/a/aaa_ouuUx9.index
-rw------- 1 cyrus mail 2.6K Jun  6 17:08
/b1/bck/b1/a/aaa_ouuUx9.index-journal

-rw------- 1 cyrus mail 2.9G Jun  6 17:01 /b1/bck/b1/c/ccc_Mqmymx
-rw------- 1 cyrus mail  46M Jun  6 17:01 /b1/bck/b1/c/ccc_Mqmymx.index

# IMAP SESSION DEBUG
# cat /b1/lib/log/admin/backupd-2584
---------- admin Thu Jun  6 17:08:02 2019

<1559833682<COMPRESS DEFLATE
>1559833682>OK DEFLATE active
<1559833682<GET USER aaa
>1559833698>* MAILBOX %(UNIQUEID acd014aa-7b1d-43c9-b1d3-f97b06540739 MBOXNAME user.aaa MBOXTYPE NIL LAST_UID 0 HIGHESTMODSEQ 2 RECENTUID 0 RECENTTIME 0 LAST_APPENDDATE 0 POP3_LAST_LOGIN 0 POP3_SHOW_AFTER 0 UIDVALIDITY 1520512152 PARTITION default ACL "aaa    lrswipkxtecdan  group:super     lrswipkxtecdan  " OPTIONS P SYNC_CRC 0 SYNC_CRC_ANNOT 0 QUOTAROOT NIL XCONVMODSEQ 0)
OK Success
<1559833698<APPLY QUOTA %(ROOT user.aaa LIMIT 5120000 STORAGE 5120000)
>1559833698>OK Success
<1559833698<GET USER ccc

Best regards,
Carlos



El 06/06/2019 a las 4:04, ellie timoney escribió:
It kinda sounds like your platform might be 32bit? Or your zlib is compiled to use 32bit integer sizes?

On Mon, Jun 3, 2019, at 10:07 PM, Carlos Larrañaga wrote:
Hi,

We're testing backup feature un cyrus-imapd 3.0.10. There's no problem when backup is created first time, but when the backup already exists and is larger than 2GB, we get the following error from the backupd:
cyrus/backupd[xxxx]: IOERROR: gzuc_read: lseek 12: No such file or directory
As said, it happens only when then backup file already exists and is larger than 2GB. The backupd process keeps reading de compressed backup file til sync_client exit with "Error from sync_do_user(xxx): bailing out!".

We use xfs with latest CentOs. Seems like backupd is unable to read the compressed backup file.

Anyone else with this problem? Any idea how to fix it?
Thanks in advance for your help.

Best regards,
Carlos.
----
Cyrus Home Page: http://www.cyrusimap.org/
To Unsubscribe:

Attachments:
  • smime.p7s


----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus


Attachments:
  • smime.p7s

----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus

----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux