Maildrop: unable to open mailbox

Discussion in 'Installation/Configuration' started by KaiserGimmel, Jan 24, 2010.

  1. troggie_0092

    troggie_0092 New Member

    Hi again,
    Just want to know, how would we know when the issue has been resolved so we can upgrade maildrop?

    Regards
     
  2. till

    till Super Moderator Staff Member ISPConfig Developer

    You can post a error report at ubuntu launchpad, then a message should be sent to your account when the bug gets closed.
     
  3. pebkac

    pebkac Member HowtoForge Supporter

    anyone know how I can make my server not update everynight to the broken version of maildrop...I have to apply the downgrade every morning now....????
     
  4. Nicke

    Nicke New Member

    Put the package on hold:

    Code:
    echo "maildrop hold"|dpkg --set-selections
    To "unhold" the package:

    Code:
    echo "maildrop install"|dpkg --set-selections
     
    Last edited: Feb 5, 2010
  5. pebkac

    pebkac Member HowtoForge Supporter

    Thanks, tried this and still did not work.

    This is just crazy, I cannot see why it is updating every bloody night..
     
  6. till

    till Super Moderator Staff Member ISPConfig Developer

    Check the cronjobs in cron.daily and make sure that you dont have cron-apt installed.
     
  7. pebkac

    pebkac Member HowtoForge Supporter

    I tried to open /etc/cron.daily and it say error reading file
     
  8. falko

    falko Super Moderator ISPConfig Developer

    I guess /etc/cron.daily is a directory. What's the output of
    Code:
    cd /etc/cron.daily
    ls -la
    ?
     
  9. pebkac

    pebkac Member HowtoForge Supporter

    root@wci:~# cd /etc/cron.daily
    root@wci:/etc/cron.daily# ls -la
    total 88
    drwxr-xr-x 2 root root 4096 2009-12-09 06:40 .
    drwxr-xr-x 110 root root 4096 2010-02-06 06:31 ..
    -rwxr-xr-x 1 root root 199 2009-04-16 19:22 amavisd-new
    -rwxr-xr-x 1 root root 633 2009-08-18 07:30 apache2
    -rwxr-xr-x 1 root root 8686 2009-04-16 21:27 apt
    -rwxr-xr-x 1 root root 314 2009-02-10 05:45 aptitude
    -rwxr-xr-x 1 root root 502 2008-11-04 13:43 bsdmainutils
    -rwxr-xr-x 1 root root 89 2009-01-26 10:55 logrotate
    -rwxr-xr-x 1 root root 954 2009-03-19 03:17 man-db
    -rwxr-xr-x 1 root root 646 2008-11-04 13:37 mlocate
    -rwxr-xr-x 1 root root 1154 2009-05-13 14:06 ntp
    -rw-r--r-- 1 root root 102 2008-11-12 07:47 .placeholder
    -rwxr-xr-x 1 root root 2149 2008-11-17 01:52 popularity-contest
    -rwxr-xr-x 1 root root 345 2008-11-05 14:42 quota
    -rwxr-xr-x 1 root root 651 2008-10-01 04:41 rkhunter
    -rwxr-xr-x 1 root root 1142 2009-02-25 22:23 spamassassin
    -rwxr-xr-x 1 root root 330 2009-07-07 10:33 squirrelmail
    -rwxr-xr-x 1 root root 3349 2008-11-12 07:47 standard
    -rwxr-xr-x 1 root root 1309 2009-01-23 10:33 sysklogd
    -rwxr-xr-x 1 root root 1450 2008-11-12 05:30 webalizer
     
  10. falko

    falko Super Moderator ISPConfig Developer

    What's in /etc/cron.daily/apt and /etc/cron.daily/aptitude?
     
  11. jdejansb

    jdejansb New Member

    There surely is a problem ... just how to configure apt(itude) not to update maildrop :confused: Seems like it's un-holding it, and upgradeing it every day :(

    /etc/cron.daily/aptitude is the guilty one :mad:

    Just removed it :rolleyes: until new maildrop pacakge comes out ... Still can do manual update ...
     
    Last edited: Feb 9, 2010
  12. pebkac

    pebkac Member HowtoForge Supporter

    apt
    Code:
    #!/bin/sh
    #
    
    #set -e
    #
    # This file understands the following apt configuration variables:
    #
    #  "APT::Periodic::Update-Package-Lists=1"
    #  - Do "apt-get update" automatically every n-days (0=disable)
    #    
    #  "APT::Periodic::Download-Upgradeable-Packages=0",
    #  - Do "apt-get upgrade --download-only" every n-days (0=disable)
    # 
    #  "APT::Periodic::AutocleanInterval"
    #  - Do "apt-get autoclean" every n-days (0=disable)
    #
    #  "APT::Periodic::Unattended-Upgrade"
    #  - Run the "unattended-upgrade" security upgrade script 
    #    every n-days (0=disabled)
    #    Requires the package "unattended-upgrades" and will write
    #    a log in /var/log/unattended-upgrades
    # 
    #  "APT::Archives::MaxAge",
    #  - Set maximum allowed age of a cache package file. If a cache 
    #    package file is older it is deleted (0=disable)
    #
    #  "APT::Archives::MaxSize",
    #  - Set maximum size of the cache in MB (0=disable). If the cache
    #    is bigger, cached package files are deleted until the size
    #    requirement is met (the biggest packages will be deleted 
    #    first).
    #
    #  "APT::Archives::MinAge"
    #  - Set minimum age of a package file. If a file is younger it
    #    will not be deleted (0=disable). Usefull to prevent races 
    #    and to keep backups of the packages for emergency.
    # 
    
    check_stamp()
    {
        stamp="$1"
        interval="$2"
    
        if [ $interval -eq 0 ]; then
            return 1
        fi
    
        if [ ! -f $stamp ]; then
            return 0
        fi
    
        # compare midnight today to midnight the day the stamp was updated
        stamp_file="$stamp"
        stamp=$(date --date=$(date -r $stamp_file --iso-8601) +%s 2>/dev/null)
        if [ "$?" != "0" ]; then
            # Due to some timezones returning 'invalid date' for midnight on
            # certain dates (eg America/Sao_Paulo), if date returns with error
            # remove the stamp file and return 0. See coreutils bug:
            # http://lists.gnu.org/archive/html/bug-coreutils/2007-09/msg00176.html
            rm -f "$stamp_file"
            return 0
        fi
    
        now=$(date --date=$(date --iso-8601) +%s 2>/dev/null)
        if [ "$?" != "0" ]; then
            # As above, due to some timezones returning 'invalid date' for midnight
            # on certain dates (eg America/Sao_Paulo), if date returns with error
            # return 0.
            return 0
        fi
    
        delta=$(($now-$stamp))
    
        # intervall is in days,
        interval=$(($interval*60*60*24))
        #echo "stampfile: $1"
        #echo "interval=$interval, now=$now, stamp=$stamp, delta=$delta"
    
        if [ $delta -ge $interval ]; then
            return 0
        fi
    
        return 1
    }
    
    update_stamp()
    {
        stamp="$1"
    
        touch $stamp
    }
    
    
    
    # we check here if autoclean was enough sizewise
    check_size_constraints()
    {
        # min-age in days
        MaxAge=0
        MinAge=2
        MaxSize=0
        CacheDir="var/cache/apt"
        CacheArchive="archives/"
        eval $(apt-config shell MaxAge APT::Archives::MaxAge)
        eval $(apt-config shell MinAge APT::Archives::MinAge)
        eval $(apt-config shell MaxSize APT::Archives::MaxSize)
        eval $(apt-config shell Dir Dir)
        eval $(apt-config shell CacheDir Dir::Cache)
        eval $(apt-config shell CacheArchive Dir::Cache::archives)
    
        # sanity check
        if [ -z "$CacheDir" -o -z "$CacheArchive" ]; then
    	echo "empty Dir::Cache or Dir::Cache::archives, exiting"
    	exit
        fi
        
        Cache="${Dir%/}/${CacheDir%/}/${CacheArchive%/}/"
    
        # check age
        if [ ! $MaxAge -eq 0 ] && [ ! $MinAge -eq 0 ]; then
    	find $Cache -name "*.deb"  \( -mtime +$MaxAge -and -ctime +$MaxAge \) -and -not \( -mtime -$MinAge -or -ctime -$MinAge \) -print0 | xargs -r -0 rm -f
        elif [ ! $MaxAge -eq 0 ]; then
    	find $Cache -name "*.deb"  -ctime +$MaxAge -and -mtime +$MaxAge -print0 | xargs -r -0 rm -f
        fi
        
        # check size
        if [ ! $MaxSize -eq 0 ]; then
    	# maxSize is in MB
    	MaxSize=$(($MaxSize*1024))
    
    	#get current time
    	now=$(date --date=$(date --iso-8601) +%s)
    	MinAge=$(($MinAge*24*60*60))
    
    	# reverse-sort by mtime
    	for file in $(ls -rt $Cache/*.deb 2>/dev/null); do 
    	    du=$(du -s $Cache)
    	    size=${du%%/*}
    	    # check if the cache is small enough
    	    if [ $size -lt $MaxSize ]; then
    		break
    	    fi
    
    	    # check for MinAge of the file
    	    if [ ! $MinAge -eq 0 ]; then 
    		# check both ctime and mtime 
    		mtime=$(stat -c %Y $file)
    		ctime=$(stat -c %Z $file)
    		if [ $mtime -gt $ctime ]; then
    		    delta=$(($now-$mtime))
    		else
    		    delta=$(($now-$ctime))
    		fi
    		#echo "$file ($delta), $MinAge"
    		if [ $delta -le $MinAge ]; then
    		    #echo "Skiping $file (delta=$delta)"
    		    break
    		fi
    	    fi
    
    	    # delete oldest file
    	    rm -f $file
    	done
        fi
    }
    
    # sleep for a random interval of time (default 30min)
    # (some code taken from cron-apt, thanks)
    random_sleep()
    {
        RandomSleep=1800
        eval $(apt-config shell RandomSleep APT::Periodic::RandomSleep)
        if [ $RandomSleep -eq 0 ]; then
    	return
        fi
        if [ -z "$RANDOM" ] ; then
            # A fix for shells that do not have this bash feature.
    	RANDOM=$(dd if=/dev/urandom count=1 2> /dev/null | cksum | cut -c"1-5")
        fi
        TIME=$(($RANDOM % $RandomSleep))
        sleep $TIME
    }
    
    # main
    
    if ! which apt-config >/dev/null; then
    	exit 0
    fi
    
    UpdateInterval=0
    DownloadUpgradeableInterval=0
    eval $(apt-config shell UpdateInterval APT::Periodic::Update-Package-Lists DownloadUpgradeableInterval APT::Periodic::Download-Upgradeable-Packages)
    AutocleanInterval=$DownloadUpgradeableInterval
    eval $(apt-config shell AutocleanInterval APT::Periodic::AutocleanInterval)
    UnattendedUpgradeInterval=0
    eval $(apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade)
    
    # check if we actually have to do anything
    if [ $UpdateInterval -eq 0 ] &&
       [ $DownloadUpgradeableInterval -eq 0 ] &&
       [ $UnattendedUpgradeInterval -eq 0 ] &&
       [ $AutocleanInterval -eq 0 ]; then
        exit 0
    fi
    
    # laptop check, on_ac_power returns:
    #       0 (true)    System is on mains power
    #       1 (false)   System is not on mains power
    #       255 (false) Power status could not be determined
    # Desktop systems always return 255 it seems
    if which on_ac_power >/dev/null; then
        on_ac_power
        if [ $? -eq 1 ]; then
    	exit 0
        fi
    fi
    
    # sleep random amount of time to avoid hitting the 
    # mirrors at the same time
    random_sleep
    
    # check if we can access the cache
    if ! apt-get check -q -q 2>/dev/null; then
        # wait random amount of time before retrying
        random_sleep
        # check again
        if ! apt-get check -q -q 2>/dev/null; then
           echo "$0: could not lock the APT cache while performing daily cron job. "
           echo "Is another package manager working?"
           exit 1
        fi
    fi
    
    # set the proxy based on the admin users gconf settings
    admin_user=$(getent group admin|cut -d: -f4|cut -d, -f1)
    if [ -n "$admin_user" ] && [ -x /usr/bin/sudo ] && [ -z "$http_proxy" ] && [ -x /usr/bin/gconftool ]; then
    	use=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/use_http_proxy 2>/dev/null)
    	host=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/host 2>/dev/null)
    	port=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/port 2>/dev/null)
    	if [ "$use" = "true" ] && [ -n "$host" ] && [ -n "$port" ]; then
    		export http_proxy="http://$host:$port/"
    	fi
    fi
    
    UPDATE_STAMP=/var/lib/apt/periodic/update-stamp
    if check_stamp $UPDATE_STAMP $UpdateInterval; then
        # check for a new archive signing key (against the master keyring)
        apt-key net-update
        # now run the update
        if apt-get -qq update -o APT::Update::Auth-Failure::="cp /usr/share/apt/apt-auth-failure.note /var/lib/update-notifier/user.d/" 2>/dev/null; then 
    	# Could possible test access to '/var/run/dbus/system_bus_socket' has well,
    	# but I'm not sure how stable the internal pipe location is defined as
    	# being;  so for the moment just 2>/dev/null . --sladen 2007-09-27
    	if which dbus-send >/dev/null; then
    	    dbus-send --system / app.apt.dbus.updated boolean:true 2>/dev/null || true
    	fi
    	# now run apt-xapian-index if it is installed to ensure the index
    	# is up-to-date
    	if [ -x /usr/sbin/update-apt-xapian-index ]; then
    	    ionice -c3 update-apt-xapian-index -q
    	fi
            update_stamp $UPDATE_STAMP
        fi
    fi
    
    DOWNLOAD_UPGRADEABLE_STAMP=/var/lib/apt/periodic/download-upgradeable-stamp
    if check_stamp $DOWNLOAD_UPGRADEABLE_STAMP $DownloadUpgradeableInterval; then
        apt-get -qq -d dist-upgrade 2>/dev/null
        update_stamp $DOWNLOAD_UPGRADEABLE_STAMP
    fi
    
    UPGRADE_STAMP=/var/lib/apt/periodic/upgrade-stamp
    if check_stamp $UPGRADE_STAMP $UnattendedUpgradeInterval; then
        unattended-upgrade
        update_stamp $UPGRADE_STAMP
    fi
    
    AUTOCLEAN_STAMP=/var/lib/apt/periodic/autoclean-stamp
    if check_stamp $AUTOCLEAN_STAMP $AutocleanInterval; then
        apt-get -qq autoclean
        update_stamp $AUTOCLEAN_STAMP
    fi
    
    # check cache size 
    check_size_constraints
    

    aptitude
    Code:
    #!/bin/sh
    
    bak=/var/backups
    
    # Shamelessly ripped from /etc/cron.daily/standard
    if test -f /var/lib/aptitude/pkgstates && cd $bak ; then
    	if ! cmp -s aptitude.pkgstates.0 /var/lib/aptitude/pkgstates ; then
    		cp -p /var/lib/aptitude/pkgstates aptitude.pkgstates
    		savelog -c 7 aptitude.pkgstates > /dev/null
    	fi
    fi
    
     
  13. mooseman

    mooseman New Member

    Hi, I moved /etc/cron.daily/aptitude to another folder and maildrop is still getting updating every day. Is there a service that needs to be restarted after removing the /etc/cron.daily/aptitude ?

    thx

    --
    Dan
     
  14. pebkac

    pebkac Member HowtoForge Supporter

    This is becoming a pain in the ass. If I forget to run the downgrade everyday, my client calls bitching....man there has got to be a way to stop this. Anyone know how I could put a script to run every morning that would run the downgrade?
     
  15. StrikerNL

    StrikerNL New Member

    I have this same problem on Ubuntu 9.04. I hid the maildrop package upgrade for now, but it would be nice if it worked.

    Also, I hope this won't prevent me from upgrading to Ubuntu 9.10 at some point.
     
  16. Nicke

    Nicke New Member

    I'm running Ubuntu 9.04.

    echo "maildrop hold"|dpkg --set-selections
    works great.

    What are you ppl running? Strange that it works for me.
     
  17. StrikerNL

    StrikerNL New Member

    Yes, it does, but I will have to upgrade either maildrop or to Ubuntu 9.10 at some point, and I'd like to know that that's possible eventually.
     
  18. Nicke

    Nicke New Member

    Yes but that is a later problem. ;)
     
  19. StrikerNL

    StrikerNL New Member

    Hence my post ;)
     
  20. Nicke

    Nicke New Member

    People in this thread cant put the packade on hold. Im interested in what they are running. :)
     

Share This Page