Package: icedove
Version: 31.0-1
Severity: serious

--- Please enter the report below this line. ---
After migrating my home directory to a 1.8TiB XFS partition, I could not
access my emails anymore. Icedove would open, but all extensions from
the profile folder were missing. The accounts were listed with the name
crossed out in the folder pane - yet the INBOX of my POP3 account (and a
single subfolder) would show up (including the mail contained
therein)... Rsyncing the profile folder from my backup one time after
another and trying various things kept me busy for most of the day...
with an AUFS union set up merging the backup root partition (ro) and
/tmp (rw), the same profile folder did work!
Digging deeper I finally found the right clues to identify the problem
cause: xfs uses 64-bit inodes by default for volumes >1TiB (and I think
BTRFS does now, too).. Icedove chokes on those.

The failing 32bit-getdents() call in strace:
> access("/home/empee584/.icedove/profile/extensions", F_OK) = 0
> stat64("/home/empee584/.icedove/profile/extensions", {st_mode=S_IFDIR|0770, 
> st_size=4096, ...}) = 0
> openat(AT_FDCWD, "/home/empee584/.icedove/profile/extensions", 
> O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 24
> getdents(24, 0xab44401c, 32768) = -1 EOVERFLOW (Value too large for defined 
> data type)
> close(24)                   = 0          
> gettimeofday({1407252551, 784289}, NULL) = 0
> gettimeofday({1407252551, 784852}, NULL) = 0
> write(1, "1407252551784\taddons.xpi\tWARN\tCa"..., 10321407252551784        
> addons.xpi      WARN    Can't iterate directory /home/empe e584/.icedov
> e/profile/extensions: [Exception... "Component returned failure code: 
> 0x80004005 (NS_ERROR_FAILURE) [nsIFile.directoryEntries]"  nsres ult: 
> "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: 
> resource://gre/modules/addons/XPIProvider.jsm :: getDirectoryEntries :: line 
> 1355"  d ata: no] Stack trace: 
> getDirectoryEntries()@resource://gre/modules/addons/XPIProvider.jsm:1355 < 
> DirInstallLocation__readAddons()@resource://gre/m 
> odules/addons/XPIProvider.jsm:6889 < 
> DirectoryInstallLocation()@resource://gre/modules/addons/XPIProvider.jsm:6828 
> < addDirectoryInstallLocation() 
> @resource://gre/modules/addons/XPIProvider.jsm:1775 < 
> XPI_startup()@resource://gre/modules/addons/XPIProvider.jsm:1856 < 
> AMI_callProviders()@resou rce://gre/modules/AddonManager.jsm:869 < 
> AMI_startup()@resource://gre/modules/AddonManager.jsm:745 < 
> AMP_startup()@resource://gre/modules/AddonMan ager.jsm:2318 < 
> AMC_observe()@resource://gre/components/addonManager.js:55 < <file:unknown>
>  ) = 1032
> ...

With the very same profile folder bind-mounted into ~/.icedove on an
ext4 (using 32bit-inodes):
> access("/home/empee584/.icedove/profile/extensions", F_OK) = 0
> stat64("/home/empee584/.icedove/profile/extensions", {st_mode=S_IFDIR|0770, 
> st_size=4096, ...}) = 0
> openat(AT_FDCWD, "/home/empee584/.icedove/profile/extensions", 
> O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 24
> getdents(24, /* 61 entries */, 32768) = 2832
> getdents(24, /* 0 entries */, 32768) = 0
> close(24)                   = 0          
> stat64("/home/empee584/.icedove/profile/extensions/{57068FBE-1506-42ee-AB02-BD183E7999E4}",
>  {st_mode=S_IFDIR|0770, st_size=4096, ...})  = 0
> stat64("/home/empee584/.icedove/profile/extensions/{57068FBE-1506-42ee-AB02-BD183E7999E4}",
>  {st_mode=S_IFDIR|0770, st_size=4096, ...})  = 0
> stat64("/home/empee584/.icedove/profile/extensions/{4C9FE6FE-2C83-11DC-90B4-DC8456D89593}",
>  {st_mode=S_IFDIR|0755, st_size=4096, ...})  = 0
> stat64("/home/empee584/.icedove/profile/extensions/{4C9FE6FE-2C83-11DC-90B4-DC8456D89593}",
>  {st_mode=S_IFDIR|0755, st_size=4096, ...})  = 0
> stat64("/home/empee584/.icedove/profile/extensions/{CC3C233D-6668-41bc-AAEB-F3A1D1D594F5}",
>  {st_mode=S_IFDIR|0755, st_size=4096, ...})  = 0
> stat64("/home/empee584/.icedove/profile/extensions/{CC3C233D-6668-41bc-AAEB-F3A1D1D594F5}",
>  {st_mode=S_IFDIR|0755, st_size=4096, ...})  = 0
> ...

chromium seemingly had the problem:
> https://code.google.com/p/nativeclient/issues/detail?id=1253


64-bit icedove reportedly does work with xfs/inode64..
> http://oss.sgi.com/archives/xfs/2013-07/msg00152.html

Running a 32bit distro with >1TeraByte partitions is probably rather
uncommon so I couldn't find a bug reported for this upstream..
just something similar (?) fixed up 4 years ago..
> https://bugzilla.mozilla.org/show_bug.cgi?id=389087
> Bug 389087: nsILocalFileUnix affected by 32bit stat/statvfs/truncate, 
> therefore does not work with large files

> # wget https://raw.githubusercontent.com/gnb/junkcode/master/summarise_stat.pl
> # perl summarise_stat.pl /usr/lib/icedove/
> Summary by status
> -----------------
>     476 97.3% are scripts (shell, perl, whatever)
>      10  2.0% don't use any stat() family calls at all
>       2  0.4% use 32-bit stat() family interfaces only [BROKEN]
>       1  0.2% use both 32-bit and 64-bit stat() family interfaces [BROKEN]
>       3  0.6% BROKEN
> List of broken files
> --------------------
> These use 32-bit stat() family interfaces only
>     /usr/lib/icedove//icedove
>     /usr/lib/icedove//icedove-bin
> These use both 32-bit and 64-bit stat() family interfaces
>     /usr/lib/icedove//libxul.so

Sorry, no idea where exactly the relevant file is, I tried to check out
the source but it was beyond me. For now bind mounting my profile^^

#Best Regards!MPartap

--- System information. ---
Architecture: i386
Kernel:       Linux 3.14-2-686-pae

Debian Release: jessie/sid
   99 unstable        ftp.uni-stuttgart.de
   99 stable          http.kali.org
  500 unstable        qgis.org
  500 unstable        debian.netcologne.de
  500 testing         debian.yeasoft.net
  500 testing         debian.netcologne.de
  500 stable          dl.google.com
  500 stable          debs.unvanquished.net
  500 stable          debian.netcologne.de
  500 squeeze         packages.devstructure.com
  500 sid             neurodebian.ovgu.de
  500 sid             linux.dropbox.com
  500 olivia          packages.linuxmint.com
  500 jessie          ppa.quickbuild.pearsoncomputing.net
  500 data            neurodebian.ovgu.de
  100 unstable        deb-multimedia.org
  100 experimental    debian.netcologne.de
    1 trusty          ppa.launchpad.net
    1 raring          ppa.launchpad.net
    1 raring          mirror.netcologne.de
    1 quantal         mirror.netcologne.de
    1 precise         ppa.launchpad.net
    1 precise         mirror.netcologne.de
    1 oneiric-getdeb  mirrors.dotsrc.org
    1 oneiric         ppa.launchpad.net
    1 natty-getdeb    mirrors.dotsrc.org
    1 karmic          ppa.launchpad.net

--- Package information. ---
Depends                               (Version) | Installed
===============================================-+-===================
fontconfig                                      | 2.11.0-5
psmisc                                          | 22.21-2
debianutils                           (>= 1.16) | 4.4
libasound2                          (>= 1.0.16) | 1.0.28-1
libatk1.0-0                         (>= 1.12.4) | 2.12.0-1
libc6                                 (>= 2.15) | 2.19-7
libcairo2                        (>= 1.10.2-2~) | 1.12.16-2
libdbus-1-3                          (>= 1.0.2) | 1.8.6-1
libdbus-glib-1-2                      (>= 0.78) | 0.102-1
libevent-2.0-5               (>= 2.0.10-stable) | 2.0.21-stable-1
libffi6                              (>= 3.0.4) | 3.1-2
libfontconfig1                        (>= 2.11) | 2.11.0-5
libfreetype6                         (>= 2.2.1) | 2.5.2-1
libgcc1                            (>= 1:4.1.1) | 1:4.9.1-4
libgdk-pixbuf2.0-0                  (>= 2.22.0) | 2.30.7-1
libglib2.0-0                        (>= 2.37.3) | 2.40.0-3
libgtk2.0-0                         (>= 2.24.0) | 2.24.24-1
libhunspell-1.3-0                    (>= 1.3.3) | 1.3.3-2
libnspr4                          (>= 2:4.10.3) | 2:4.10.6-1
libnss3                             (>= 2:3.16) | 2:3.16.3-1
libpango-1.0-0                      (>= 1.14.0) | 1.36.3-1
libpangocairo-1.0-0                 (>= 1.14.0) | 1.36.3-1
libpangoft2-1.0-0                   (>= 1.14.0) | 1.36.3-1
libpixman-1-0                       (>= 0.25.2) | 0.32.6-1
libsqlite3-0                         (>= 3.7.7) | 3.8.5-2
libstartup-notification0               (>= 0.8) | 0.12-3
libstdc++6                             (>= 4.9) | 4.9.1-4
libvpx1                              (>= 1.3.0) | 1.3.0-2
libx11-6                                        | 2:1.6.2-2
libxext6                                        | 2:1.3.2-1
libxrender1                                     | 1:0.9.8-1
libxt6                                          | 1:1.1.4-1
zlib1g                             (>= 1:1.2.0) | 1:1.2.8.dfsg-1


Recommends               (Version) | Installed
==================================-+-===========
myspell-en-us                      | 1:3.3.0-4
 OR hunspell-dictionary            |
 OR myspell-dictionary             |


Suggests              (Version) | Installed
===============================-+-===========
fonts-lyx                       | 2.0.6-1
libgssapi-krb5-2                | 1.12.1+dfsg-6


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to