Hello Ondrej,
I tried with 2.4.18-2
But, I had this warning:
db5.1_archive: DB_ENV->log_archive: DB_NOTFOUND: No matching key/data pair
found
And, this error:
/usr/lib/cyrus/bin/upgrade-db: 54: /usr/lib/cyrus/bin/upgrade-db:
/usr/sbin/cvt_cyrusdb: not found
The output in debug was:
+ export PATH=/sbin:/usr/sbin:/bin:/usr/bin
+ LC_ALL=C gawk /^configdirectory:[[:blank:]]/ { print $2 }
+ CONFIG_DIR=/var/lib/cyrus
+ date +%Y%m%d-%H%M%S
+ BACKUP_DIR=/var/backup/cyrus-imapd/20151229-095634
+ mkdir -p /var/backup/cyrus-imapd/20151229-095634
+ upgradealldb /usr/lib/cyrus/cyrus-db-types.txt
/usr/lib/cyrus/cyrus-db-types.active
+ OLD_LIST=/usr/lib/cyrus/cyrus-db-types.active
+ NEW_LIST=/usr/lib/cyrus/cyrus-db-types.txt
+ sed -e s/BerkeleyDB//
+ LC_ALL=C gawk /^DBENGINE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.active
+ OLD_DBVERSION=5.1
+ sed -e s/BerkeleyDB//
+ LC_ALL=C gawk /^DBENGINE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVERSION=5.3
+ [ 5.1 != 5.3 ]
+ DB_UTIL_NOT_FOUND=
+ [ ! -x /usr/bin/db5.1_recover ]
+ [ ! -x /usr/bin/db5.3_upgrade ]
+ [ -n ]
+ backupbdb 5.1
+ mkdir -p /var/backup/cyrus-imapd/20151229-095634/db
+ su cyrus -c db5.1_recover -h /var/lib/cyrus/db
+ read log_file
+ su cyrus -c db5.1_archive -h /var/lib/cyrus/db -l
db5.1_archive: DB_ENV->log_archive: DB_NOTFOUND: No matching key/data pair
found
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^ANNOTATION[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=skiplist
+ [ -z skiplist ]
+ DO_UPGRADE_DB=
+ [ skiplist != skiplist ]
+ DBFILE=
+ DBFILE=annotations.db
+ [ -n ]
+ [ -f /var/lib/cyrus/annotations.db ]
+ [ -n -o 5.1 != 5.3 ]
+ backupdb annotations.db skiplist
+ cp -a /var/lib/cyrus/annotations.db
/var/backup/cyrus-imapd/20151229-095634
+ upgradedb annotations.db skiplist skiplist
+ mktemp /tmp/annotations.db.XXXXXXXX
+ TMPFILE=/tmp/annotations.db.w2eglUaq
+ /usr/sbin/cvt_cyrusdb /var/lib/cyrus/annotations.db skiplist
/tmp/annotations.db.w2eglUaq skiplist
/usr/lib/cyrus/bin/upgrade-db: 55: /usr/lib/cyrus/bin/upgrade-db:
/usr/sbin/cvt_cyrusdb: not found
dpkg: error al procesar el paquete cyrus-common (--configure):
With this modification:
54c54
< /usr/lib/cyrus/cvt_cyrusdb $CONFIG_DIR/$1 $2 $TMPFILE $3
---
> /usr/sbin/cvt_cyrusdb $CONFIG_DIR/$1 $2 $TMPFILE $3
The output was:
+ set -e
+ export PATH=/sbin:/usr/sbin:/bin:/usr/bin
+ LC_ALL=C gawk /^configdirectory:[[:blank:]]/ { print $2 }
+ CONFIG_DIR=/var/lib/cyrus
+ date +%Y%m%d-%H%M%S
+ BACKUP_DIR=/var/backup/cyrus-imapd/20151229-100507
+ mkdir -p /var/backup/cyrus-imapd/20151229-100507
+ upgradealldb /usr/lib/cyrus/cyrus-db-types.txt
/usr/lib/cyrus/cyrus-db-types.active
+ OLD_LIST=/usr/lib/cyrus/cyrus-db-types.active
+ NEW_LIST=/usr/lib/cyrus/cyrus-db-types.txt
+ sed -e s/BerkeleyDB//
+ LC_ALL=C gawk /^DBENGINE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.active
+ OLD_DBVERSION=5.1
+ sed -e s/BerkeleyDB//
+ LC_ALL=C gawk /^DBENGINE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVERSION=5.3
+ [ 5.1 != 5.3 ]
+ DB_UTIL_NOT_FOUND=
+ [ ! -x /usr/bin/db5.1_recover ]
+ [ ! -x /usr/bin/db5.3_upgrade ]
+ [ -n ]
+ backupbdb 5.1
+ mkdir -p /var/backup/cyrus-imapd/20151229-100507/db
+ su cyrus -c db5.1_recover -h /var/lib/cyrus/db
+ read log_file
+ su cyrus -c db5.1_archive -h /var/lib/cyrus/db -l
db5.1_archive: DB_ENV->log_archive: DB_NOTFOUND: No matching key/data pair
found
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^ANNOTATION[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=skiplist
+ [ -z skiplist ]
+ DO_UPGRADE_DB=
+ [ skiplist != skiplist ]
+ DBFILE=
+ DBFILE=annotations.db
+ [ -n ]
+ [ -f /var/lib/cyrus/annotations.db ]
+ [ -n -o 5.1 != 5.3 ]
+ backupdb annotations.db skiplist
+ cp -a /var/lib/cyrus/annotations.db
/var/backup/cyrus-imapd/20151229-100507
+ upgradedb annotations.db skiplist skiplist
+ mktemp /tmp/annotations.db.XXXXXXXX
+ TMPFILE=/tmp/annotations.db.Pariro4V
+ /usr/lib/cyrus/cvt_cyrusdb /var/lib/cyrus/annotations.db skiplist
/tmp/annotations.db.Pariro4V skiplist
/usr/lib/cyrus/bin/upgrade-db: 54: /usr/lib/cyrus/bin/upgrade-db:
/usr/lib/cyrus/cvt_cyrusdb: not found
dpkg: error al procesar el paquete cyrus-common (--configure):
el subproceso instalado el script post-installation devolvió el código de salida de
error 127
And with this modifications:
54c54
< /usr/lib/cyrus/cvt_cyrusdb $CONFIG_DIR/$1 $2 $TMPFILE $3
---
> /usr/sbin/cvt_cyrusdb $CONFIG_DIR/$1 $2 $TMPFILE $3
170,172c170
< if [ -n "${DO_UPGRADE_DB}" ]; then
< upgradedb $DBFILE $OLD_DBVALUE $NEW_DBVALUE
< fi
---
> upgradedb $DBFILE $OLD_DBVALUE $NEW_DBVALUE
The upgrade ran successfully, and the output was:
+ set -e
+ export PATH=/sbin:/usr/sbin:/bin:/usr/bin
+ LC_ALL=C gawk /^configdirectory:[[:blank:]]/ { print $2 }
+ CONFIG_DIR=/var/lib/cyrus
+ date +%Y%m%d-%H%M%S
+ BACKUP_DIR=/var/backup/cyrus-imapd/20151229-101550
+ mkdir -p /var/backup/cyrus-imapd/20151229-101550
+ upgradealldb /usr/lib/cyrus/cyrus-db-types.txt
/usr/lib/cyrus/cyrus-db-types.active
+ OLD_LIST=/usr/lib/cyrus/cyrus-db-types.active
+ NEW_LIST=/usr/lib/cyrus/cyrus-db-types.txt
+ sed -e s/BerkeleyDB//
+ LC_ALL=C gawk /^DBENGINE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.active
+ OLD_DBVERSION=5.1
+ sed -e s/BerkeleyDB//
+ LC_ALL=C gawk /^DBENGINE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVERSION=5.3
+ [ 5.1 != 5.3 ]
+ DB_UTIL_NOT_FOUND=
+ [ ! -x /usr/bin/db5.1_recover ]
+ [ ! -x /usr/bin/db5.3_upgrade ]
+ [ -n ]
+ backupbdb 5.1
+ mkdir -p /var/backup/cyrus-imapd/20151229-101550/db
+ su cyrus -c db5.1_recover -h /var/lib/cyrus/db
+ read log_file
+ su cyrus -c db5.1_archive -h /var/lib/cyrus/db -l
db5.1_archive: DB_ENV->log_archive: DB_NOTFOUND: No matching key/data pair
found
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^ANNOTATION[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=skiplist
+ [ -z skiplist ]
+ DO_UPGRADE_DB=
+ [ skiplist != skiplist ]
+ DBFILE=
+ DBFILE=annotations.db
+ [ -n ]
+ [ -f /var/lib/cyrus/annotations.db ]
+ [ -n -o 5.1 != 5.3 ]
+ backupdb annotations.db skiplist
+ cp -a /var/lib/cyrus/annotations.db
/var/backup/cyrus-imapd/20151229-101550
+ [ -n ]
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^DBENGINE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=BerkeleyDB5.3
+ [ -z BerkeleyDB5.3 ]
+ DO_UPGRADE_DB=
+ [ BerkeleyDB5.3 != BerkeleyDB5.1 ]
+ DO_UPGRADE_DB=yes
+ DBFILE=
+ continue
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^DUPLICATE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=skiplist
+ [ -z skiplist ]
+ DO_UPGRADE_DB=
+ [ skiplist != skiplist ]
+ DBFILE=
+ DBFILE=deliver.db
+ [ -n ]
+ [ -f /var/lib/cyrus/deliver.db ]
+ [ -n -o 5.1 != 5.3 ]
+ backupdb deliver.db skiplist
+ cp -a /var/lib/cyrus/deliver.db /var/backup/cyrus-imapd/20151229-101550
+ [ -n ]
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^MBOX[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=skiplist
+ [ -z skiplist ]
+ DO_UPGRADE_DB=
+ [ skiplist != skiplist ]
+ DBFILE=
+ DBFILE=mailboxes.db
+ [ -n ]
+ [ -f /var/lib/cyrus/mailboxes.db ]
+ [ -n -o 5.1 != 5.3 ]
+ backupdb mailboxes.db skiplist
+ cp -a /var/lib/cyrus/mailboxes.db /var/backup/cyrus-imapd/20151229-101550
+ [ -n ]
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^PTS[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=skiplist
+ [ -z skiplist ]
+ DO_UPGRADE_DB=
+ [ skiplist != skiplist ]
+ DBFILE=
+ [ -n ]
+ [ -f /var/lib/cyrus/ ]
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^QUOTA[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=quotalegacy
+ [ -z quotalegacy ]
+ DO_UPGRADE_DB=
+ [ quotalegacy != quotalegacy ]
+ DBFILE=
+ [ -n ]
+ [ -n ]
+ [ -f /var/lib/cyrus/ ]
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^SEEN[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=skiplist
+ [ -z skiplist ]
+ DO_UPGRADE_DB=
+ [ skiplist != skiplist ]
+ DBFILE=
+ [ -n ]
+ [ -n ]
+ [ -f /var/lib/cyrus/ ]
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^STATUSCACHE[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=skiplist
+ [ -z skiplist ]
+ DO_UPGRADE_DB=
+ [ skiplist != skiplist ]
+ DBFILE=
+ [ -n ]
+ [ -f /var/lib/cyrus/ ]
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^SUBS[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=flat
+ [ -z flat ]
+ DO_UPGRADE_DB=
+ [ flat != flat ]
+ DBFILE=
+ [ -n ]
+ [ -n ]
+ [ -f /var/lib/cyrus/ ]
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^TLS[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=skiplist
+ [ -z skiplist ]
+ DO_UPGRADE_DB=
+ [ skiplist != skiplist ]
+ DBFILE=
+ [ -n ]
+ [ -f /var/lib/cyrus/ ]
+ read -r OLD_DBKEY OLD_DBVALUE
+ LC_ALL=C gawk /^USERDENY[[:blank:]]/ { print $2 }
/usr/lib/cyrus/cyrus-db-types.txt
+ NEW_DBVALUE=flat
+ [ -z flat ]
+ DO_UPGRADE_DB=
+ [ flat != flat ]
+ DBFILE=
+ DBFILE=user_deny.db
+ [ -n ]
+ [ -f /var/lib/cyrus/user_deny.db ]
+ [ -n -o 5.1 != 5.3 ]
+ backupdb user_deny.db flat
+ cp -a /var/lib/cyrus/user_deny.db /var/backup/cyrus-imapd/20151229-101550
+ [ -n ]
+ read -r OLD_DBKEY OLD_DBVALUE
+ [ 5.1 != 5.3 ]
+ checkpointbdb 5.3
+ su cyrus -c db5.3_checkpoint -h /var/lib/cyrus/db -1
+ su cyrus -c db5.3_archive -h /var/lib/cyrus/db -d
+ return 0
+ RET=0
+ [ 0 -eq 0 ]
+ cp -p /usr/lib/cyrus/cyrus-db-types.txt
/usr/lib/cyrus/cyrus-db-types.active
+ exit 0
Configurando cyrus-imapd (2.4.18-2) ...
Configurando cyrus-imapd-2.4 (2.4.18-2) ...
Configurando cyrus-pop3d (2.4.18-2) ...
Configurando cyrus-pop3d-2.4 (2.4.18-2) ...
I hope it helps,
Thank you very much,
Agu
PD: And feel free to ask me to try something...
El 23/12/2015 a las 11:12 a.m., Ondřej Surý escribió:
Hmm, I see. It basically means I have to trigger the BDB update if the
environment is found or I'll use the solution you have suggested :)
Cheers,
Ondrej
On Wed, Dec 23, 2015, at 13:32, Agustín Eijo wrote:
Hi Ondrej,
This patch does not work. The script ends with the following error (in
both cases: wheezy
-> jessie and wheezy -> sid ) :
db5.3_checkpoint: BDB1538 Program version 5.3 doesn't match environment
version 5.1
db5.3_checkpoint: DB_ENV->open: BDB0091 DB_VERSION_MISMATCH: Database
environment version
mismatch
I attach the output script with set -x ( debug-upgrade-db.txt )
Agu
El 23/12/2015 a las 04:59 a.m., Ondřej Surý escribió:
Hi Augustín,
are you able to retry the upgrade with following patch?
diff --git a/debian/cyrus-upgrade-db b/debian/cyrus-upgrade-db
index 82a9d8e..2077a1f 100755
--- a/debian/cyrus-upgrade-db
+++ b/debian/cyrus-upgrade-db
@@ -182,13 +182,8 @@ upgradealldb() {
# Create Berkeley DB checkpoint and remove old logs
if [ -n "${DO_UPGRADE_BDB}" -a -d $CONFIG_DIR/db ]; then
- if [ -f /usr/lib/cyrus/berkeley-db-found.txt ]; then
- # Create new checkpoint
- checkpointbdb $NEW_DBVERSION
- else
- # Remove empty environment
- rm -rf $CONFIG_DIR/db
- fi
+ # Create new checkpoint
+ checkpointbdb $NEW_DBVERSION
fi
[ -f /usr/lib/cyrus/berkeley-db-found.txt ] && \
(aka never remove the BerkeleyDB environment, just checkpoint it every
time)
Cheers,
Ondrej
On Tue, Dec 22, 2015, at 22:30, Agustín Eijo wrote:
Hello,
I tried to make the upgrade from wheezy to sid, but I have the same
problem with 2.4.18-1.
The script /usr/lib/cyrus/bin/upgrade-db delete /var/lib/cyrus/db
directory
I tried changing:
190c190
< rm -rf $CONFIG_DIR/db
---
> rm -rf $CONFIG_DIR/db/*
And the upgrade works well...
Agustín.
El 21/12/2015 a las 09:24 a.m., Debian Bug Tracking System escribió:
This is an automatic notification regarding your Bug report
which was filed against the cyrus-common package:
#803976: cyrus-common: /usr/lib/cyrus/bin/upgrade-db delete /var/lib/cyrus/db
on upgrade from wheezy to jessie
It has been closed by Ondřej Surý <ond...@debian.org>.
Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Ondřej Surý
<ond...@debian.org> by
replying to this email.
Email had 1 attachment:
+ debug-upgrade-db.txt
6k (text/plain)