Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

case insensitivity and kernel release 4.7+ #5507

Closed
RJVB opened this issue Dec 21, 2016 · 5 comments
Closed

case insensitivity and kernel release 4.7+ #5507

RJVB opened this issue Dec 21, 2016 · 5 comments

Comments

@RJVB
Copy link

RJVB commented Dec 21, 2016

I am experiencing an issue with a case-insensitive dataset running 0.6.5.8 built for Ubuntu 14.04 (see ppa:rjvbertin/misc) under mainstream kernels 4.7.2 and 4.8.15 built with the ConKolivas patches.

Any process trying to access a mounted case-insensitive dataset hangs, and that includes zfs.mount when mounting a case-sensitive child of the case-insensitive dataset. With hanging I mean that the process is completely unresponsive to signals and interrupts though it does not show up as a zombie:

For instance:

Dec 21 09:18:42 Bola kernel: [  734.989027] INFO: task updatedb.mlocat:8044 blocked for more than 120 seconds.
Dec 21 09:18:42 Bola kernel: [  734.989055]       Tainted: P     U     OE   4.8.15-ck8-mainline-core2-rjvb #1
Dec 21 09:18:42 Bola kernel: [  734.989067] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Dec 21 09:18:42 Bola kernel: [  734.989080] updatedb.mlocat D ffff9b3798e07aa0     0  8044      1 0x00000004
Dec 21 09:18:42 Bola kernel: [  734.989107]  ffff9b3798e07aa0 ffff9b383fc990a0 0000000000000001 000000861b669c56
Dec 21 09:18:42 Bola kernel: [  734.989130]  ffff9b3812615348 0000000000000001 010000018020001a 00000000434464a3
Dec 21 09:18:42 Bola kernel: [  734.989148]  ffff9b3761593038 0000000000000000 0000000000000000 0000000000000001
Dec 21 09:18:42 Bola kernel: [  734.989169] Call Trace:
Dec 21 09:18:42 Bola kernel: [  734.989256]  [<ffffffff8ba93f7a>] schedule+0x3a/0xc0
Dec 21 09:18:42 Bola kernel: [  734.989273]  [<ffffffff8b2f15ba>] d_alloc_parallel+0x4da/0x5e0
Dec 21 09:18:42 Bola kernel: [  734.989290]  [<ffffffff8b0d9e50>] ? wake_up_process+0x20/0x20
Dec 21 09:18:42 Bola kernel: [  734.989323]  [<ffffffff8b2f1974>] d_add_ci+0x94/0x1e0
Dec 21 09:18:42 Bola kernel: [  734.989624]  [<ffffffffc06829d9>] zpl_lookup+0x1d9/0x210 [zfs]
Dec 21 09:18:42 Bola kernel: [  734.989661]  [<ffffffff8b2d8445>] lookup_slow+0x95/0x170
Dec 21 09:18:42 Bola kernel: [  734.989695]  [<ffffffff8b2dd47e>] path_lookupat+0x61e/0xac0
Dec 21 09:18:42 Bola kernel: [  734.989967]  [<ffffffffc065b287>] ? zfs_readdir+0x307/0x540 [zfs]
Dec 21 09:18:42 Bola kernel: [  734.989982]  [<ffffffff8b2ddaa0>] filename_lookup+0x180/0x2f0
Dec 21 09:18:42 Bola kernel: [  734.989996]  [<ffffffff8b0d627b>] ? preempt_count_add+0xbb/0xd0
Dec 21 09:18:42 Bola kernel: [  734.990009]  [<ffffffff8ba9c11a>] ? _raw_spin_unlock+0x1a/0x30
Dec 21 09:18:42 Bola kernel: [  734.990253]  [<ffffffffc05e2d9d>] ? rrw_exit+0x4d/0x130 [zfs]
Dec 21 09:18:42 Bola kernel: [  734.990313]  [<ffffffff8b2e0993>] ? getname_flags.part.39+0x53/0x200
Dec 21 09:18:42 Bola kernel: [  734.990327]  [<ffffffff8b2e0b9a>] user_path_at_empty+0x5a/0x80
Dec 21 09:18:42 Bola kernel: [  734.990343]  [<ffffffff8b2d0893>] vfs_fstatat.constprop.5+0x33/0x170
Dec 21 09:18:42 Bola kernel: [  734.990356]  [<ffffffff8b2d09f5>] SYSC_newlstat+0x15/0x30
Dec 21 09:18:42 Bola kernel: [  734.990370]  [<ffffffff8b2ea5ce>] ? SyS_poll+0x7e/0x160
Dec 21 09:18:42 Bola kernel: [  734.990381]  [<ffffffff8b2d1c6e>] SyS_newlstat+0xe/0x10
Dec 21 09:18:42 Bola kernel: [  734.990393]  [<ffffffff8ba9c876>] entry_SYSCALL_64_fastpath+0x1e/0xa8

The dataset properties:

NAME                                       PROPERTY              VALUE                                        SOURCE
bolaLNX/bertinsDevel/Scratch/caseInsensed  type                  filesystem                                   -
bolaLNX/bertinsDevel/Scratch/caseInsensed  creation              Thu Sep 29 10:04 2016                        -
bolaLNX/bertinsDevel/Scratch/caseInsensed  used                  672K                                         -
bolaLNX/bertinsDevel/Scratch/caseInsensed  available             131G                                         -
bolaLNX/bertinsDevel/Scratch/caseInsensed  referenced            576K                                         -
bolaLNX/bertinsDevel/Scratch/caseInsensed  compressratio         1.35x                                        -
bolaLNX/bertinsDevel/Scratch/caseInsensed  mounted               yes                                          -
bolaLNX/bertinsDevel/Scratch/caseInsensed  quota                 none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  reservation           none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  recordsize            128K                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  mountpoint            /home/bertin/cworks/Scratch/caseInsenseTest  local
bolaLNX/bertinsDevel/Scratch/caseInsensed  sharenfs              off                                          inherited from bolaLNX
bolaLNX/bertinsDevel/Scratch/caseInsensed  checksum              off                                          inherited from bolaLNX/bertinsDevel/Scratch
bolaLNX/bertinsDevel/Scratch/caseInsensed  compression           lz4                                          inherited from bolaLNX
bolaLNX/bertinsDevel/Scratch/caseInsensed  atime                 off                                          inherited from bolaLNX
bolaLNX/bertinsDevel/Scratch/caseInsensed  devices               on                                           default
bolaLNX/bertinsDevel/Scratch/caseInsensed  exec                  on                                           default
bolaLNX/bertinsDevel/Scratch/caseInsensed  setuid                on                                           default
bolaLNX/bertinsDevel/Scratch/caseInsensed  readonly              off                                          default
bolaLNX/bertinsDevel/Scratch/caseInsensed  zoned                 off                                          default
bolaLNX/bertinsDevel/Scratch/caseInsensed  snapdir               visible                                      inherited from bolaLNX
bolaLNX/bertinsDevel/Scratch/caseInsensed  aclinherit            restricted                                   default
bolaLNX/bertinsDevel/Scratch/caseInsensed  canmount              on                                           default
bolaLNX/bertinsDevel/Scratch/caseInsensed  xattr                 sa                                           inherited from bolaLNX
bolaLNX/bertinsDevel/Scratch/caseInsensed  copies                1                                            inherited from bolaLNX/bertinsDevel/Scratch
bolaLNX/bertinsDevel/Scratch/caseInsensed  version               5                                            -
bolaLNX/bertinsDevel/Scratch/caseInsensed  utf8only              on                                           -
bolaLNX/bertinsDevel/Scratch/caseInsensed  normalization         formD                                        -
bolaLNX/bertinsDevel/Scratch/caseInsensed  casesensitivity       insensitive                                  -
bolaLNX/bertinsDevel/Scratch/caseInsensed  vscan                 off                                          default
bolaLNX/bertinsDevel/Scratch/caseInsensed  nbmand                off                                          default
bolaLNX/bertinsDevel/Scratch/caseInsensed  sharesmb              on                                           inherited from bolaLNX
bolaLNX/bertinsDevel/Scratch/caseInsensed  refquota              none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  refreservation        none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  primarycache          all                                          inherited from bolaLNX
bolaLNX/bertinsDevel/Scratch/caseInsensed  secondarycache        all                                          inherited from bolaLNX
bolaLNX/bertinsDevel/Scratch/caseInsensed  usedbysnapshots       0                                            -
bolaLNX/bertinsDevel/Scratch/caseInsensed  usedbydataset         576K                                         -
bolaLNX/bertinsDevel/Scratch/caseInsensed  usedbychildren        96K                                          -
bolaLNX/bertinsDevel/Scratch/caseInsensed  usedbyrefreservation  0                                            -
bolaLNX/bertinsDevel/Scratch/caseInsensed  logbias               throughput                                   inherited from bolaLNX
bolaLNX/bertinsDevel/Scratch/caseInsensed  dedup                 off                                          default
bolaLNX/bertinsDevel/Scratch/caseInsensed  mlslabel              none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  sync                  standard                                     inherited from bolaLNX/bertinsDevel/Scratch
bolaLNX/bertinsDevel/Scratch/caseInsensed  refcompressratio      1.38x                                        -
bolaLNX/bertinsDevel/Scratch/caseInsensed  written               576K                                         -
bolaLNX/bertinsDevel/Scratch/caseInsensed  logicalused           596K                                         -
bolaLNX/bertinsDevel/Scratch/caseInsensed  logicalreferenced     556K                                         -
bolaLNX/bertinsDevel/Scratch/caseInsensed  filesystem_limit      none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  snapshot_limit        none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  filesystem_count      none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  snapshot_count        none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  snapdev               hidden                                       default
bolaLNX/bertinsDevel/Scratch/caseInsensed  acltype               off                                          default
bolaLNX/bertinsDevel/Scratch/caseInsensed  context               none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  fscontext             none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  defcontext            none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  rootcontext           none                                         default
bolaLNX/bertinsDevel/Scratch/caseInsensed  relatime              off                                          default
bolaLNX/bertinsDevel/Scratch/caseInsensed  redundant_metadata    most                                         inherited from bolaLNX
bolaLNX/bertinsDevel/Scratch/caseInsensed  overlay               on                                           inherited from bolaLNX

Running kernel 4.5.7 with the same patches I do not have this issue, suggestion that it is related to the modifications made to enable ZFS on 4.7+ kernels.

@kernelOfTruth
Copy link
Contributor

Can you test whether this also occurs with kernels that use CFS (stock) cpu scheduler ?

@loli10K
Copy link
Contributor

loli10K commented Dec 21, 2016

running 0.6.5.8
under mainstream kernels 4.7.2 and 4.8.15

@RJVB this should be fixed by #5141 (Linux 4.7: fix deadlock during lookup on case-insensitive). You can find a patch for 0.6.5.8 in the comments.

@RJVB
Copy link
Author

RJVB commented Dec 21, 2016

Great, I'll test that straightaway. If that fixes the issue it is highly likely that the CK patches are not to blame.

@RJVB
Copy link
Author

RJVB commented Dec 22, 2016 via email

@gmelikov
Copy link
Member

@RJVB as i see the issue is already solved. Feel free to reopen if it's not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants