I've made it through the initial build and the problem does in fact still
   occur.  I completed the build with CONFIG_AUFS_DEBUG=y and as one would
   expect, the problem still occurs. Â  Interestingly, I cannot reproduce 100%
   of the time in the way previously described.  Here is what does work to
   reproduce for me 100% of the time currently:
   mkdir -p a/b; cd .; rm -rf a; ls;
   The end result is always a stale file handle.  If you 'cd .' following this
   set of commands the error clears, unless you are in the top level of the
   aufs filesystem.  If you are in the top level, you must umount/mount the
   aufs file system to recover.
   For the most part I did not get anything in my kernel debug logs, but after
   hammering on it a bit I did get the following in my logs which appears to be
   related:
   Feb  Â 3  23:54:38  aufs kernel: [ 3577.351197] ------------[ cut here
   ]------------
   Feb  3 23:54:38 aufs kernel: [ 3577.351206] WARNING: CPU: 0 PID: 3725 at
   /build/buildd/linux-3.16.0/fs
   /inode.c:282 drop_nlink+0x41/0x50()
   Feb  Â 3  23:54:38 aufs kernel: [ 3577.351208] Modules linked in: aufs
   snd_hda_codec_generic   kvm_amd   kvm   crct10dif_pclmul  crc32_pclmul
   ghash_clmulni_intel ppdev aesni_intel aes_x86_64 lrw gf128mul glue_helper
   ablk_helper  cryptd snd_hda_intel snd_hda_controller snd_hda_codec qxl
   snd_hwdep snd_pcm ttm drm_kms_helper snd_timer serio_raw drm snd soundcore
   parport_pc pvpanic parport i2c_piix4 mac_hid btrfs xor raid6_pq psmouse
   floppy pata_acpi
   Feb  3 23:54:38 aufs kernel: [ 3577.351233] CPU: 0 PID: 3725 Comm: rm
   Tainted: G Â  Â  Â  Â W Â  Â  3.16.0-23-generic #31-Ubuntu
   Feb  3 23:54:38 aufs kernel: [ 3577.351234] Hardware name: QEMU Standard PC
   (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_171129-lamiak 04/01/2014
   Feb  Â 3  23:54:38  aufs  kernel:  [  3577.351236]  Â 0000000000000009
   ffff88003a07fcc8 ffffffff8177fcbc 0000000000000000
   Feb  Â 3  23:54:38  aufs  kernel:  [  3577.351238]  Â ffff88003a07fd00
   ffffffff8106fd8d ffff88003a742058 ffff88003a742058
   Feb  Â 3  23:54:38  aufs  kernel:  [  3577.351240]  Â 0000000000000000
   ffff88003b3ac240 ffff88003b92b100 ffff88003a07fd10
   Feb  3 23:54:38 aufs kernel: [ 3577.351251] Call Trace:
   Feb  Â 3  23:54:38  aufs kernel: [ 3577.351257] Â [<ffffffff8177fcbc>]
   dump_stack+0x45/0x56
   Feb  Â 3  23:54:38  aufs kernel: [ 3577.351261] Â [<ffffffff8106fd8d>]
   warn_slowpath_common+0x7d/0xa0
   Feb  Â 3  23:54:38  aufs kernel: [ 3577.351263] Â [<ffffffff8106fe6a>]
   warn_slowpath_null+0x1a/0x20
   Feb  Â 3  23:54:38  aufs kernel: [ 3577.351265] Â [<ffffffff811fc5f1>]
   drop_nlink+0x41/0x50
   Feb  Â 3  23:54:38  aufs kernel: [ 3577.351273] Â [<ffffffffc0510c1d>]
   au_whtmp_rmdir+0x19d/0x1b0 [aufs]
   Feb  Â 3 23:54:38 aufs kernel: [ 3577.351278] Â [<ffffffffc050fe5e>] ?
   au_whtmp_ren+0x6e/0xe0 [aufs]
   Feb  Â 3  23:54:38  aufs kernel: [ 3577.351283] Â [<ffffffffc051f2e7>]
   aufs_rmdir+0x2b7/0x430 [aufs]
   Feb  Â 3 23:54:38 aufs kernel: [ 3577.351285] Â [<ffffffff811f7d50>] ?
   prepend.constprop.25+0x30/0x30
   Feb  Â 3  23:54:38  aufs kernel: [ 3577.351288] Â [<ffffffff811eef57>]
   vfs_rmdir+0xa7/0x100
   Feb  Â 3  23:54:38  aufs kernel: [ 3577.351290] Â [<ffffffff811f1a79>]
   do_rmdir+0x1d9/0x1f0
   Feb  Â 3 23:54:38 aufs kernel: [ 3577.351293] Â [<ffffffff811e285e>] ?
   ____fput+0xe/0x10
   Feb  Â 3 23:54:38 aufs kernel: [ 3577.351295] Â [<ffffffff810919ac>] ?
   task_work_run+0xbc/0xf0
   Feb  Â 3 23:54:38 aufs kernel: [ 3577.351299] Â [<ffffffff810130f7>] ?
   do_notify_resume+0x97/0xb0
   Feb  Â 3  23:54:38  aufs kernel: [ 3577.351301] Â [<ffffffff811f2d25>]
   SyS_unlinkat+0x25/0x40
   Feb  Â 3  23:54:38  aufs kernel: [ 3577.351304] Â [<ffffffff81787ced>]
   system_call_fastpath+0x1a/0x1f
   Feb  3 23:54:38 aufs kernel: [ 3577.351391] ---[ end trace d717630435aab60d
   ]---
   I could not get this to occur on a regular basis, but it popped up at some
   point.  Hopefully that is of some help.
   Here are all the aufs config options for my current build:
   CONFIG_AUFS_FS=m
   CONFIG_AUFS_BRANCH_MAX_127=y
   # CONFIG_AUFS_BRANCH_MAX_511 is not set
   # CONFIG_AUFS_BRANCH_MAX_1023 is not set
   # CONFIG_AUFS_BRANCH_MAX_32767 is not set
   CONFIG_AUFS_SBILIST=y
   # CONFIG_AUFS_HNOTIFY is not set
   CONFIG_AUFS_EXPORT=y
   CONFIG_AUFS_INO_T_64=y
   # CONFIG_AUFS_RDU is not set
   # CONFIG_AUFS_SP_IATTR is not set
   # CONFIG_AUFS_SHWH is not set
   # CONFIG_AUFS_BR_RAMFS is not set
   # CONFIG_AUFS_BR_FUSE is not set
   # CONFIG_AUFS_BR_HFSPLUS is not set
   CONFIG_AUFS_BDEV_LOOP=y
   CONFIG_AUFS_DEBUG=y
   CONFIG_AUFS_MAGIC_SYSRQ=y
   I have not yet applied the patch, but I will give it a try tomorrow to see
   if it makes a difference in behavior or log messages.

   On Tue, Feb 3, 2015 at 8:06 PM, <[1]sf...@users.sourceforge.net> wrote:

     MJ, Dan,
     I appriciate your efforts.
     Dan Kegel:
     > That failed with "no config found", so I repeated it after doing
     > $ cp -vi /boot/config-`uname -r` .config
     > It then asked two questions; I said yes to X86_16BIT and no to
     > IPMI_SI_PROBE_DEFAULTS.
     Â  Â  Â  Â  :::
     Â  (and about the uppercase in aufsD)
     Sorry about that.
     I myself didn't use make-kpg to build ubuntu trusty kernel. I did all
     manually.
     - cd ubuntu-trusty.git
     - cp "MJ's config-3.13.0-35-generic" .config
     - make menuconfig
     Â  edit CONFIG_LOCALVERSION="aufsD"
     - make
     - make headers_install
     - make modules_install
     - cp -p arch/x86/boot/bzImage /boot/vmlinuz-brabra
     - cp -p System.map /boot/System.map-brabra
     - edit /boot/grub/grub.cfg and add the entry
     Essentially these steps and make-kpg should be equivalent, and the
     purpose is to build/re-build and install the kernel. If you or any
     ubuntu user have a better way to do it, don't hesitate to stop using
     make-kpg.
     Thanks again
     J. R. Okajima

   --
   Michael Johnson - MJ

References

   1. mailto:sf...@users.sourceforge.net
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/

Reply via email to