Hi,

a long time ago you opened a bug in the Debian package libpam-mount. Recently
I took over maintenance of this package and added a patch to address this. You
can find the new version in Debian experimental, would be great if you could
try it and report back if it fixes your problem.
If no one reports an error in it, I will upload the package to unstable and
close this in a month.

Cheers Jochen

* Carlo Contavalli <ccontava...@gmail.com> [2013-09-22 08:04]:
Package: libpam-mount
Version: 2.14-1
Severity: important

Using "tmpfs" to avoid an SSD being written to continuously, and to
discard files at reboot. I started off with a line like:

 <volume group="users" fstype="tmpfs" mountpoint="/home/%(USER)/mycache/" 
options="size=1G,uid=%(USER),mode=0700" />

If I logged in multiple times, however, i would get multiple tmpfs
mounted on top of each other, which is certainly wrong and not what I want
(eg, a loging would make all previous files in cache disappear!!).

By enabling verbose logging, turns out that:

1) pam-mount, at login, decides if a file systems needs to be mounted
again based on the output of mount, and content of /proc/mounts.
2) if a mount is already visible in /proc/mounts, it does not mount it.
If it is missing, it adds it.
3) with verbose logging, it seems like that without the "path" attribute
in the <volume> definition, path is interpreted as "(null)" and it looks
for '/' in the output of /proc/mounts? However, the linux kernel has
"none" in the same line (probably as a result of how it was mounted).
The two don't match, so the file system is mounted again and again.
4) if I add a "path" attribute to the <volume> definition, like with:

<volume group="users" fstype="tmpfs" path="mycache" mountpoint="/home/%(USER)/mycache/" 
options="size=1G,uid=%(USER),mode=0700" />

And then login and run mount, I now see:

[...]
mycache on /home/ccontavalli/mycache type tmpfs 
(rw,relatime,size=1048576k,mode=700)
[...]

instead of:

[...]
none on /home/ccontavalli/mycache type tmpfs 
(rw,relatime,size=1048576k,mode=700)
[...]

... and logging out now works.

What I'd like to see is either:
1) determine this is "expected behavior", and document it.
2) fix the code so an unspecified "path" is treated correctly (eg, doesn't
try to match for / or whatever it is trying to match on), and just does
the right thing.

2) is more desirable to me than 1).

-- System Information:
Debian Release: jessie/sid
 APT prefers testing
 APT policy: (995, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 
'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.10-2-686-pae (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash

Versions of packages libpam-mount depends on:
ii  base-files      7.2
ii  libc6           2.17-92+b1
ii  libcryptsetup4  2:1.6.1-1
ii  libhx28         3.15-2
ii  libmount1       2.20.1-5.5
ii  libpam-runtime  1.1.3-9
ii  libpam0g        1.1.3-9
ii  libpcre3        1:8.31-2
ii  libssl1.0.0     1.0.1e-3
ii  libxml2         2.9.1+dfsg1-3
ii  mount           2.20.1-5.5

libpam-mount recommends no packages.

Versions of packages libpam-mount suggests:
pn  cifs-utils  <none>
pn  davfs2      <none>
ii  fuse        2.9.2-4
ii  lsof        4.86+dfsg-1
pn  ncpfs       <none>
ii  openssl     1.0.1e-3
ii  psmisc      22.20-1
pn  sshfs       <none>
pn  tc-utils    <none>
pn  xfsprogs    <none>

-- no debconf information

Attachment: signature.asc
Description: PGP signature

Reply via email to