You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2167 lines
54 KiB

  1. <!doctype html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <meta name="description" content="mergerfs - a featureful union filesystem">
  7. <link rel="canonical" href="https://trapexit.github.io/mergerfs/known_issues_bugs/">
  8. <link rel="prev" href="../tips_notes/">
  9. <link rel="next" href="../project_comparisons/">
  10. <link rel="icon" href="../assets/images/favicon.png">
  11. <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.50">
  12. <title>Known Issues and Bugs - mergerfs</title>
  13. <link rel="stylesheet" href="../assets/stylesheets/main.a40c8224.min.css">
  14. <link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
  15. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  16. <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
  17. <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
  18. <script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
  19. </head>
  20. <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
  21. <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
  22. <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
  23. <label class="md-overlay" for="__drawer"></label>
  24. <div data-md-component="skip">
  25. <a href="#known-issues-and-bugs" class="md-skip">
  26. Skip to content
  27. </a>
  28. </div>
  29. <div data-md-component="announce">
  30. </div>
  31. <header class="md-header md-header--shadow" data-md-component="header">
  32. <nav class="md-header__inner md-grid" aria-label="Header">
  33. <a href=".." title="mergerfs" class="md-header__button md-logo" aria-label="mergerfs" data-md-component="logo">
  34. <img src="../logo.jpeg" alt="logo">
  35. </a>
  36. <label class="md-header__button md-icon" for="__drawer">
  37. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
  38. </label>
  39. <div class="md-header__title" data-md-component="header-title">
  40. <div class="md-header__ellipsis">
  41. <div class="md-header__topic">
  42. <span class="md-ellipsis">
  43. mergerfs
  44. </span>
  45. </div>
  46. <div class="md-header__topic" data-md-component="header-topic">
  47. <span class="md-ellipsis">
  48. Known Issues and Bugs
  49. </span>
  50. </div>
  51. </div>
  52. </div>
  53. <form class="md-header__option" data-md-component="palette">
  54. <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
  55. <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
  56. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m14.3 16-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zm-9.15 3.96h2.3L12 9z"/></svg>
  57. </label>
  58. <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
  59. <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
  60. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
  61. </label>
  62. <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to system preference" type="radio" name="__palette" id="__palette_2">
  63. <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
  64. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
  65. </label>
  66. </form>
  67. <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
  68. <label class="md-header__button md-icon" for="__search">
  69. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
  70. </label>
  71. <div class="md-search" data-md-component="search" role="dialog">
  72. <label class="md-search__overlay" for="__search"></label>
  73. <div class="md-search__inner" role="search">
  74. <form class="md-search__form" name="search">
  75. <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
  76. <label class="md-search__icon md-icon" for="__search">
  77. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
  78. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
  79. </label>
  80. <nav class="md-search__options" aria-label="Search">
  81. <a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
  82. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
  83. </a>
  84. <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
  85. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
  86. </button>
  87. </nav>
  88. </form>
  89. <div class="md-search__output">
  90. <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
  91. <div class="md-search-result" data-md-component="search-result">
  92. <div class="md-search-result__meta">
  93. Initializing search
  94. </div>
  95. <ol class="md-search-result__list" role="presentation"></ol>
  96. </div>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. <div class="md-header__source">
  102. <a href="https://github.com/trapexit/mergerfs" title="Go to repository" class="md-source" data-md-component="source">
  103. <div class="md-source__icon md-icon">
  104. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
  105. </div>
  106. <div class="md-source__repository">
  107. mergerfs
  108. </div>
  109. </a>
  110. </div>
  111. </nav>
  112. </header>
  113. <div class="md-container" data-md-component="container">
  114. <main class="md-main" data-md-component="main">
  115. <div class="md-main__inner md-grid">
  116. <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
  117. <div class="md-sidebar__scrollwrap">
  118. <div class="md-sidebar__inner">
  119. <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  120. <label class="md-nav__title" for="__drawer">
  121. <a href=".." title="mergerfs" class="md-nav__button md-logo" aria-label="mergerfs" data-md-component="logo">
  122. <img src="../logo.jpeg" alt="logo">
  123. </a>
  124. mergerfs
  125. </label>
  126. <div class="md-nav__source">
  127. <a href="https://github.com/trapexit/mergerfs" title="Go to repository" class="md-source" data-md-component="source">
  128. <div class="md-source__icon md-icon">
  129. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
  130. </div>
  131. <div class="md-source__repository">
  132. mergerfs
  133. </div>
  134. </a>
  135. </div>
  136. <ul class="md-nav__list" data-md-scrollfix>
  137. <li class="md-nav__item">
  138. <a href=".." class="md-nav__link">
  139. <span class="md-ellipsis">
  140. Home
  141. </span>
  142. </a>
  143. </li>
  144. <li class="md-nav__item">
  145. <a href="../quickstart/" class="md-nav__link">
  146. <span class="md-ellipsis">
  147. QuickStart
  148. </span>
  149. </a>
  150. </li>
  151. <li class="md-nav__item md-nav__item--nested">
  152. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
  153. <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
  154. <span class="md-ellipsis">
  155. Installation
  156. </span>
  157. <span class="md-nav__icon md-icon"></span>
  158. </label>
  159. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
  160. <label class="md-nav__title" for="__nav_3">
  161. <span class="md-nav__icon md-icon"></span>
  162. Installation
  163. </label>
  164. <ul class="md-nav__list" data-md-scrollfix>
  165. <li class="md-nav__item">
  166. <a href="../setup/installation/" class="md-nav__link">
  167. <span class="md-ellipsis">
  168. Installation
  169. </span>
  170. </a>
  171. </li>
  172. <li class="md-nav__item">
  173. <a href="../setup/upgrade/" class="md-nav__link">
  174. <span class="md-ellipsis">
  175. Upgrade
  176. </span>
  177. </a>
  178. </li>
  179. <li class="md-nav__item">
  180. <a href="../setup/build/" class="md-nav__link">
  181. <span class="md-ellipsis">
  182. Build
  183. </span>
  184. </a>
  185. </li>
  186. </ul>
  187. </nav>
  188. </li>
  189. <li class="md-nav__item">
  190. <a href="../terminology/" class="md-nav__link">
  191. <span class="md-ellipsis">
  192. Terminology
  193. </span>
  194. </a>
  195. </li>
  196. <li class="md-nav__item md-nav__item--nested">
  197. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
  198. <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
  199. <span class="md-ellipsis">
  200. Config
  201. </span>
  202. <span class="md-nav__icon md-icon"></span>
  203. </label>
  204. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
  205. <label class="md-nav__title" for="__nav_5">
  206. <span class="md-nav__icon md-icon"></span>
  207. Config
  208. </label>
  209. <ul class="md-nav__list" data-md-scrollfix>
  210. <li class="md-nav__item">
  211. <a href="../config/options/" class="md-nav__link">
  212. <span class="md-ellipsis">
  213. Options
  214. </span>
  215. </a>
  216. </li>
  217. <li class="md-nav__item">
  218. <a href="../config/deprecated_options/" class="md-nav__link">
  219. <span class="md-ellipsis">
  220. Deprecated Options
  221. </span>
  222. </a>
  223. </li>
  224. <li class="md-nav__item">
  225. <a href="../config/branches/" class="md-nav__link">
  226. <span class="md-ellipsis">
  227. branches
  228. </span>
  229. </a>
  230. </li>
  231. <li class="md-nav__item">
  232. <a href="../config/functions_categories_and_policies/" class="md-nav__link">
  233. <span class="md-ellipsis">
  234. functions, categories and policies
  235. </span>
  236. </a>
  237. </li>
  238. <li class="md-nav__item">
  239. <a href="../config/func_readdir/" class="md-nav__link">
  240. <span class="md-ellipsis">
  241. func.readdir
  242. </span>
  243. </a>
  244. </li>
  245. <li class="md-nav__item">
  246. <a href="../config/rename_and_link/" class="md-nav__link">
  247. <span class="md-ellipsis">
  248. rename and link
  249. </span>
  250. </a>
  251. </li>
  252. <li class="md-nav__item">
  253. <a href="../config/cache/" class="md-nav__link">
  254. <span class="md-ellipsis">
  255. caching
  256. </span>
  257. </a>
  258. </li>
  259. <li class="md-nav__item">
  260. <a href="../config/readahead/" class="md-nav__link">
  261. <span class="md-ellipsis">
  262. readahead
  263. </span>
  264. </a>
  265. </li>
  266. <li class="md-nav__item">
  267. <a href="../config/inodecalc/" class="md-nav__link">
  268. <span class="md-ellipsis">
  269. inodecalc
  270. </span>
  271. </a>
  272. </li>
  273. <li class="md-nav__item">
  274. <a href="../config/threads/" class="md-nav__link">
  275. <span class="md-ellipsis">
  276. threads
  277. </span>
  278. </a>
  279. </li>
  280. <li class="md-nav__item">
  281. <a href="../config/pin-threads/" class="md-nav__link">
  282. <span class="md-ellipsis">
  283. pin-threads
  284. </span>
  285. </a>
  286. </li>
  287. <li class="md-nav__item">
  288. <a href="../config/link_cow/" class="md-nav__link">
  289. <span class="md-ellipsis">
  290. link_cow
  291. </span>
  292. </a>
  293. </li>
  294. <li class="md-nav__item">
  295. <a href="../config/fuse_msg_size/" class="md-nav__link">
  296. <span class="md-ellipsis">
  297. fuse_msg_size
  298. </span>
  299. </a>
  300. </li>
  301. <li class="md-nav__item">
  302. <a href="../config/follow-symlinks/" class="md-nav__link">
  303. <span class="md-ellipsis">
  304. follow-symlinks
  305. </span>
  306. </a>
  307. </li>
  308. <li class="md-nav__item">
  309. <a href="../config/link-exdev/" class="md-nav__link">
  310. <span class="md-ellipsis">
  311. link-exdev
  312. </span>
  313. </a>
  314. </li>
  315. <li class="md-nav__item">
  316. <a href="../config/rename-exdev/" class="md-nav__link">
  317. <span class="md-ellipsis">
  318. rename-exdev
  319. </span>
  320. </a>
  321. </li>
  322. <li class="md-nav__item">
  323. <a href="../config/symlinkify/" class="md-nav__link">
  324. <span class="md-ellipsis">
  325. symlinkify
  326. </span>
  327. </a>
  328. </li>
  329. <li class="md-nav__item">
  330. <a href="../config/nullrw/" class="md-nav__link">
  331. <span class="md-ellipsis">
  332. nullrw
  333. </span>
  334. </a>
  335. </li>
  336. <li class="md-nav__item">
  337. <a href="../config/xattr/" class="md-nav__link">
  338. <span class="md-ellipsis">
  339. xattr
  340. </span>
  341. </a>
  342. </li>
  343. <li class="md-nav__item">
  344. <a href="../config/nfsopenhack/" class="md-nav__link">
  345. <span class="md-ellipsis">
  346. nfsopenhack
  347. </span>
  348. </a>
  349. </li>
  350. <li class="md-nav__item">
  351. <a href="../config/statfs/" class="md-nav__link">
  352. <span class="md-ellipsis">
  353. statfs / statvfs
  354. </span>
  355. </a>
  356. </li>
  357. <li class="md-nav__item">
  358. <a href="../config/flush-on-close/" class="md-nav__link">
  359. <span class="md-ellipsis">
  360. flush-on-close
  361. </span>
  362. </a>
  363. </li>
  364. <li class="md-nav__item">
  365. <a href="../config/export-support/" class="md-nav__link">
  366. <span class="md-ellipsis">
  367. export-support
  368. </span>
  369. </a>
  370. </li>
  371. </ul>
  372. </nav>
  373. </li>
  374. <li class="md-nav__item">
  375. <a href="../error_handling_and_logging/" class="md-nav__link">
  376. <span class="md-ellipsis">
  377. Error Handling and Logging
  378. </span>
  379. </a>
  380. </li>
  381. <li class="md-nav__item">
  382. <a href="../runtime_interfaces/" class="md-nav__link">
  383. <span class="md-ellipsis">
  384. Runtime Interfaces
  385. </span>
  386. </a>
  387. </li>
  388. <li class="md-nav__item">
  389. <a href="../remote_filesystems/" class="md-nav__link">
  390. <span class="md-ellipsis">
  391. Remote Filesystems
  392. </span>
  393. </a>
  394. </li>
  395. <li class="md-nav__item">
  396. <a href="../tips_notes/" class="md-nav__link">
  397. <span class="md-ellipsis">
  398. Tips and Notes
  399. </span>
  400. </a>
  401. </li>
  402. <li class="md-nav__item md-nav__item--active">
  403. <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
  404. <label class="md-nav__link md-nav__link--active" for="__toc">
  405. <span class="md-ellipsis">
  406. Known Issues and Bugs
  407. </span>
  408. <span class="md-nav__icon md-icon"></span>
  409. </label>
  410. <a href="./" class="md-nav__link md-nav__link--active">
  411. <span class="md-ellipsis">
  412. Known Issues and Bugs
  413. </span>
  414. </a>
  415. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  416. <label class="md-nav__title" for="__toc">
  417. <span class="md-nav__icon md-icon"></span>
  418. Table of contents
  419. </label>
  420. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  421. <li class="md-nav__item">
  422. <a href="#mergerfs" class="md-nav__link">
  423. <span class="md-ellipsis">
  424. mergerfs
  425. </span>
  426. </a>
  427. <nav class="md-nav" aria-label="mergerfs">
  428. <ul class="md-nav__list">
  429. <li class="md-nav__item">
  430. <a href="#supplemental-user-groups" class="md-nav__link">
  431. <span class="md-ellipsis">
  432. Supplemental user groups
  433. </span>
  434. </a>
  435. </li>
  436. <li class="md-nav__item">
  437. <a href="#directory-mtime-is-not-being-updated" class="md-nav__link">
  438. <span class="md-ellipsis">
  439. directory mtime is not being updated
  440. </span>
  441. </a>
  442. </li>
  443. <li class="md-nav__item">
  444. <a href="#mv-mntpoolfoo-mntdisk1foo-removes-foo" class="md-nav__link">
  445. <span class="md-ellipsis">
  446. 'mv /mnt/pool/foo /mnt/disk1/foo' removes 'foo'
  447. </span>
  448. </a>
  449. </li>
  450. <li class="md-nav__item">
  451. <a href="#cached-memory-appears-greater-than-it-should-be" class="md-nav__link">
  452. <span class="md-ellipsis">
  453. cached memory appears greater than it should be
  454. </span>
  455. </a>
  456. </li>
  457. <li class="md-nav__item">
  458. <a href="#nfs-clients-returning-estale-stale-file-handle" class="md-nav__link">
  459. <span class="md-ellipsis">
  460. NFS clients returning ESTALE / Stale file handle
  461. </span>
  462. </a>
  463. </li>
  464. <li class="md-nav__item">
  465. <a href="#rtorrent-fails-with-enodev-no-such-device" class="md-nav__link">
  466. <span class="md-ellipsis">
  467. rtorrent fails with ENODEV (No such device)
  468. </span>
  469. </a>
  470. </li>
  471. <li class="md-nav__item">
  472. <a href="#plex-jellyfin-doesnt-work-with-mergerfs" class="md-nav__link">
  473. <span class="md-ellipsis">
  474. Plex / Jellyfin doesn't work with mergerfs
  475. </span>
  476. </a>
  477. </li>
  478. <li class="md-nav__item">
  479. <a href="#when-a-program-tries-to-move-or-rename-a-file-it-fails" class="md-nav__link">
  480. <span class="md-ellipsis">
  481. When a program tries to move or rename a file it fails
  482. </span>
  483. </a>
  484. </li>
  485. <li class="md-nav__item">
  486. <a href="#my-32bit-software-has-problems" class="md-nav__link">
  487. <span class="md-ellipsis">
  488. my 32bit software has problems
  489. </span>
  490. </a>
  491. </li>
  492. <li class="md-nav__item">
  493. <a href="#moving-files-and-directories-fails-with-samba" class="md-nav__link">
  494. <span class="md-ellipsis">
  495. Moving files and directories fails with Samba
  496. </span>
  497. </a>
  498. </li>
  499. <li class="md-nav__item">
  500. <a href="#trashing-files-occasionally-fails" class="md-nav__link">
  501. <span class="md-ellipsis">
  502. Trashing files occasionally fails
  503. </span>
  504. </a>
  505. </li>
  506. </ul>
  507. </nav>
  508. </li>
  509. <li class="md-nav__item">
  510. <a href="#fuse-and-linux-kernel" class="md-nav__link">
  511. <span class="md-ellipsis">
  512. FUSE and Linux kernel
  513. </span>
  514. </a>
  515. <nav class="md-nav" aria-label="FUSE and Linux kernel">
  516. <ul class="md-nav__list">
  517. <li class="md-nav__item">
  518. <a href="#nfs-and-eio-errors" class="md-nav__link">
  519. <span class="md-ellipsis">
  520. NFS and EIO errors
  521. </span>
  522. </a>
  523. </li>
  524. <li class="md-nav__item">
  525. <a href="#truncated-files" class="md-nav__link">
  526. <span class="md-ellipsis">
  527. Truncated files
  528. </span>
  529. </a>
  530. </li>
  531. <li class="md-nav__item">
  532. <a href="#crashing-on-openvz" class="md-nav__link">
  533. <span class="md-ellipsis">
  534. Crashing on OpenVZ
  535. </span>
  536. </a>
  537. </li>
  538. <li class="md-nav__item">
  539. <a href="#really-bad-mmap-performance" class="md-nav__link">
  540. <span class="md-ellipsis">
  541. Really bad mmap performance
  542. </span>
  543. </a>
  544. </li>
  545. <li class="md-nav__item">
  546. <a href="#heavy-load-and-memory-pressure-leads-to-kernel-panic" class="md-nav__link">
  547. <span class="md-ellipsis">
  548. Heavy load and memory pressure leads to kernel panic
  549. </span>
  550. </a>
  551. </li>
  552. </ul>
  553. </nav>
  554. </li>
  555. </ul>
  556. </nav>
  557. </li>
  558. <li class="md-nav__item">
  559. <a href="../project_comparisons/" class="md-nav__link">
  560. <span class="md-ellipsis">
  561. Project Comparisons
  562. </span>
  563. </a>
  564. </li>
  565. <li class="md-nav__item">
  566. <a href="../performance/" class="md-nav__link">
  567. <span class="md-ellipsis">
  568. Tweaking Performance
  569. </span>
  570. </a>
  571. </li>
  572. <li class="md-nav__item">
  573. <a href="../benchmarking/" class="md-nav__link">
  574. <span class="md-ellipsis">
  575. Benchmarking
  576. </span>
  577. </a>
  578. </li>
  579. <li class="md-nav__item">
  580. <a href="../tooling/" class="md-nav__link">
  581. <span class="md-ellipsis">
  582. Tooling
  583. </span>
  584. </a>
  585. </li>
  586. <li class="md-nav__item">
  587. <a href="../usage_patterns/" class="md-nav__link">
  588. <span class="md-ellipsis">
  589. Usage Patterns
  590. </span>
  591. </a>
  592. </li>
  593. <li class="md-nav__item md-nav__item--nested">
  594. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" >
  595. <label class="md-nav__link" for="__nav_16" id="__nav_16_label" tabindex="0">
  596. <span class="md-ellipsis">
  597. FAQ
  598. </span>
  599. <span class="md-nav__icon md-icon"></span>
  600. </label>
  601. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_16_label" aria-expanded="false">
  602. <label class="md-nav__title" for="__nav_16">
  603. <span class="md-nav__icon md-icon"></span>
  604. FAQ
  605. </label>
  606. <ul class="md-nav__list" data-md-scrollfix>
  607. <li class="md-nav__item">
  608. <a href="../faq/reliability_and_scalability/" class="md-nav__link">
  609. <span class="md-ellipsis">
  610. Reliability and Scalability
  611. </span>
  612. </a>
  613. </li>
  614. <li class="md-nav__item">
  615. <a href="../faq/usage_and_functionality/" class="md-nav__link">
  616. <span class="md-ellipsis">
  617. Usage and Functionality
  618. </span>
  619. </a>
  620. </li>
  621. <li class="md-nav__item">
  622. <a href="../faq/configuration_and_policies/" class="md-nav__link">
  623. <span class="md-ellipsis">
  624. Configuration and Policies
  625. </span>
  626. </a>
  627. </li>
  628. <li class="md-nav__item">
  629. <a href="../faq/compatibility_and_integration/" class="md-nav__link">
  630. <span class="md-ellipsis">
  631. Compatibility and Integration
  632. </span>
  633. </a>
  634. </li>
  635. <li class="md-nav__item">
  636. <a href="../faq/recommendations_and_warnings/" class="md-nav__link">
  637. <span class="md-ellipsis">
  638. Recommendations and Warnings
  639. </span>
  640. </a>
  641. </li>
  642. <li class="md-nav__item">
  643. <a href="../faq/technical_behavior_and_limitations/" class="md-nav__link">
  644. <span class="md-ellipsis">
  645. Technical Behavior and Limitations
  646. </span>
  647. </a>
  648. </li>
  649. <li class="md-nav__item">
  650. <a href="../faq/limit_drive_spinup/" class="md-nav__link">
  651. <span class="md-ellipsis">
  652. Limiting drive spinup
  653. </span>
  654. </a>
  655. </li>
  656. </ul>
  657. </nav>
  658. </li>
  659. <li class="md-nav__item">
  660. <a href="../related_projects/" class="md-nav__link">
  661. <span class="md-ellipsis">
  662. Related Projects
  663. </span>
  664. </a>
  665. </li>
  666. <li class="md-nav__item">
  667. <a href="../media_and_publicity/" class="md-nav__link">
  668. <span class="md-ellipsis">
  669. Media and Publicity
  670. </span>
  671. </a>
  672. </li>
  673. <li class="md-nav__item">
  674. <a href="../support/" class="md-nav__link">
  675. <span class="md-ellipsis">
  676. Support
  677. </span>
  678. </a>
  679. </li>
  680. <li class="md-nav__item">
  681. <a href="../sponsorship_and_donations/" class="md-nav__link">
  682. <span class="md-ellipsis">
  683. Sponsorship and Donations
  684. </span>
  685. </a>
  686. </li>
  687. </ul>
  688. </nav>
  689. </div>
  690. </div>
  691. </div>
  692. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  693. <div class="md-sidebar__scrollwrap">
  694. <div class="md-sidebar__inner">
  695. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  696. <label class="md-nav__title" for="__toc">
  697. <span class="md-nav__icon md-icon"></span>
  698. Table of contents
  699. </label>
  700. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  701. <li class="md-nav__item">
  702. <a href="#mergerfs" class="md-nav__link">
  703. <span class="md-ellipsis">
  704. mergerfs
  705. </span>
  706. </a>
  707. <nav class="md-nav" aria-label="mergerfs">
  708. <ul class="md-nav__list">
  709. <li class="md-nav__item">
  710. <a href="#supplemental-user-groups" class="md-nav__link">
  711. <span class="md-ellipsis">
  712. Supplemental user groups
  713. </span>
  714. </a>
  715. </li>
  716. <li class="md-nav__item">
  717. <a href="#directory-mtime-is-not-being-updated" class="md-nav__link">
  718. <span class="md-ellipsis">
  719. directory mtime is not being updated
  720. </span>
  721. </a>
  722. </li>
  723. <li class="md-nav__item">
  724. <a href="#mv-mntpoolfoo-mntdisk1foo-removes-foo" class="md-nav__link">
  725. <span class="md-ellipsis">
  726. 'mv /mnt/pool/foo /mnt/disk1/foo' removes 'foo'
  727. </span>
  728. </a>
  729. </li>
  730. <li class="md-nav__item">
  731. <a href="#cached-memory-appears-greater-than-it-should-be" class="md-nav__link">
  732. <span class="md-ellipsis">
  733. cached memory appears greater than it should be
  734. </span>
  735. </a>
  736. </li>
  737. <li class="md-nav__item">
  738. <a href="#nfs-clients-returning-estale-stale-file-handle" class="md-nav__link">
  739. <span class="md-ellipsis">
  740. NFS clients returning ESTALE / Stale file handle
  741. </span>
  742. </a>
  743. </li>
  744. <li class="md-nav__item">
  745. <a href="#rtorrent-fails-with-enodev-no-such-device" class="md-nav__link">
  746. <span class="md-ellipsis">
  747. rtorrent fails with ENODEV (No such device)
  748. </span>
  749. </a>
  750. </li>
  751. <li class="md-nav__item">
  752. <a href="#plex-jellyfin-doesnt-work-with-mergerfs" class="md-nav__link">
  753. <span class="md-ellipsis">
  754. Plex / Jellyfin doesn't work with mergerfs
  755. </span>
  756. </a>
  757. </li>
  758. <li class="md-nav__item">
  759. <a href="#when-a-program-tries-to-move-or-rename-a-file-it-fails" class="md-nav__link">
  760. <span class="md-ellipsis">
  761. When a program tries to move or rename a file it fails
  762. </span>
  763. </a>
  764. </li>
  765. <li class="md-nav__item">
  766. <a href="#my-32bit-software-has-problems" class="md-nav__link">
  767. <span class="md-ellipsis">
  768. my 32bit software has problems
  769. </span>
  770. </a>
  771. </li>
  772. <li class="md-nav__item">
  773. <a href="#moving-files-and-directories-fails-with-samba" class="md-nav__link">
  774. <span class="md-ellipsis">
  775. Moving files and directories fails with Samba
  776. </span>
  777. </a>
  778. </li>
  779. <li class="md-nav__item">
  780. <a href="#trashing-files-occasionally-fails" class="md-nav__link">
  781. <span class="md-ellipsis">
  782. Trashing files occasionally fails
  783. </span>
  784. </a>
  785. </li>
  786. </ul>
  787. </nav>
  788. </li>
  789. <li class="md-nav__item">
  790. <a href="#fuse-and-linux-kernel" class="md-nav__link">
  791. <span class="md-ellipsis">
  792. FUSE and Linux kernel
  793. </span>
  794. </a>
  795. <nav class="md-nav" aria-label="FUSE and Linux kernel">
  796. <ul class="md-nav__list">
  797. <li class="md-nav__item">
  798. <a href="#nfs-and-eio-errors" class="md-nav__link">
  799. <span class="md-ellipsis">
  800. NFS and EIO errors
  801. </span>
  802. </a>
  803. </li>
  804. <li class="md-nav__item">
  805. <a href="#truncated-files" class="md-nav__link">
  806. <span class="md-ellipsis">
  807. Truncated files
  808. </span>
  809. </a>
  810. </li>
  811. <li class="md-nav__item">
  812. <a href="#crashing-on-openvz" class="md-nav__link">
  813. <span class="md-ellipsis">
  814. Crashing on OpenVZ
  815. </span>
  816. </a>
  817. </li>
  818. <li class="md-nav__item">
  819. <a href="#really-bad-mmap-performance" class="md-nav__link">
  820. <span class="md-ellipsis">
  821. Really bad mmap performance
  822. </span>
  823. </a>
  824. </li>
  825. <li class="md-nav__item">
  826. <a href="#heavy-load-and-memory-pressure-leads-to-kernel-panic" class="md-nav__link">
  827. <span class="md-ellipsis">
  828. Heavy load and memory pressure leads to kernel panic
  829. </span>
  830. </a>
  831. </li>
  832. </ul>
  833. </nav>
  834. </li>
  835. </ul>
  836. </nav>
  837. </div>
  838. </div>
  839. </div>
  840. <div class="md-content" data-md-component="content">
  841. <article class="md-content__inner md-typeset">
  842. <a href="https://github.com/trapexit/mergerfs/edit/master/mkdocs/docs/known_issues_bugs.md" title="Edit this page" class="md-content__button md-icon">
  843. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg>
  844. </a>
  845. <a href="https://github.com/trapexit/mergerfs/raw/master/mkdocs/docs/known_issues_bugs.md" title="View source of this page" class="md-content__button md-icon">
  846. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"/></svg>
  847. </a>
  848. <h1 id="known-issues-and-bugs">Known Issues and Bugs</h1>
  849. <h2 id="mergerfs">mergerfs</h2>
  850. <h3 id="supplemental-user-groups">Supplemental user groups</h3>
  851. <p>Due to the overhead of
  852. <a href="http://linux.die.net/man/2/setgroups">getgroups/setgroups</a> mergerfs
  853. utilizes a cache. This cache is opportunistic and per thread. Each
  854. thread will query the supplemental groups for a user when that
  855. particular thread needs to change credentials and will keep that data
  856. for the lifetime of the thread. This means that if a user is added to
  857. a group it may not be picked up without the restart of
  858. mergerfs. In the future this may be improved to allow a periodic or
  859. manual clearing of the cache.</p>
  860. <p>While not a bug some users have found when using containers that
  861. supplemental groups defined inside the container don't work as
  862. expected. Since mergerfs lives outside the container it is querying
  863. the host's group database. Effectively containers have their own user
  864. and group definitions unless setup otherwise just as different systems
  865. would.</p>
  866. <p>Users should mount in the host group file into the containers or use a
  867. standard shared user &amp; groups technology like NIS or LDAP.</p>
  868. <h3 id="directory-mtime-is-not-being-updated">directory mtime is not being updated</h3>
  869. <p>Remember that the default policy for <code>getattr</code> is <code>ff</code>. The
  870. information for the first directory found will be returned. If it
  871. wasn't the directory which had been updated then it will appear
  872. outdated.</p>
  873. <p>The reason this is the default is because any other policy would be
  874. more expensive and for many applications it is unnecessary. To always
  875. return the directory with the most recent mtime or a faked value based
  876. on all found would require a scan of all filesystems.</p>
  877. <p>If you always want the directory information from the one with the
  878. most recent mtime then use the <code>newest</code> policy for <code>getattr</code>.</p>
  879. <h3 id="mv-mntpoolfoo-mntdisk1foo-removes-foo">'mv /mnt/pool/foo /mnt/disk1/foo' removes 'foo'</h3>
  880. <p>This is not a bug.</p>
  881. <p>Run in verbose mode to better understand what's happening:</p>
  882. <div class="language-text highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>$ mv -v /mnt/pool/foo /mnt/disk1/foo
  883. </span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>copied &#39;/mnt/pool/foo&#39; -&gt; &#39;/mnt/disk1/foo&#39;
  884. </span><span id="__span-0-3"><a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>removed &#39;/mnt/pool/foo&#39;
  885. </span><span id="__span-0-4"><a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>$ ls /mnt/pool/foo
  886. </span><span id="__span-0-5"><a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>ls: cannot access &#39;/mnt/pool/foo&#39;: No such file or directory
  887. </span></code></pre></div>
  888. <p><code>mv</code>, when working across devices, is copying the source to target and
  889. then removing the source. Since the source <strong>is</strong> the target in this
  890. case, depending on the unlink policy, it will remove the just copied
  891. file and other files across the branches.</p>
  892. <p>If you want to move files to one filesystem just copy them there and
  893. use mergerfs.dedup to clean up the old paths or manually remove them
  894. from the branches directly.</p>
  895. <h3 id="cached-memory-appears-greater-than-it-should-be">cached memory appears greater than it should be</h3>
  896. <p>Use <code>cache.files=off</code> and/or <code>dropcacheonclose=true</code>. See the section
  897. on <a href="../config/cache/">page caching</a>.</p>
  898. <h3 id="nfs-clients-returning-estale-stale-file-handle">NFS clients returning ESTALE / Stale file handle</h3>
  899. <p>NFS generally does not like out of band changes. Take a look at the
  900. section on NFS in the <a href="../remote_filesystems/">remote-filesystems</a> for
  901. more details.</p>
  902. <h3 id="rtorrent-fails-with-enodev-no-such-device">rtorrent fails with ENODEV (No such device)</h3>
  903. <p>Be sure to set
  904. <a href="../config/cache/">cache.files=partial|full|auto-full|per-process</a>
  905. or use Linux kernel v6.6 or above. rtorrent and some other
  906. applications use <a href="http://linux.die.net/man/2/mmap">mmap</a> to read and
  907. write to files and offer no fallback to traditional methods.</p>
  908. <h3 id="plex-jellyfin-doesnt-work-with-mergerfs">Plex / Jellyfin doesn't work with mergerfs</h3>
  909. <p>It does. If you're trying to put the software's config / metadata /
  910. database on mergerfs you can't set
  911. <a href="../config/cache/">cache.files=off</a> (unless you use Linux v6.6 or
  912. above) because Plex is using <strong>sqlite3</strong> with <strong>mmap</strong> enabled.</p>
  913. <p>That said it is recommended that config and runtime files be stored on
  914. SSDs on a regular filesystem for performance reasons and if you are
  915. using HDDs in your pool to help limit spinup.</p>
  916. <p>Other software that leverages <strong>sqlite3</strong> which require <strong>mmap</strong>
  917. includes Radarr, Sonarr, Lidarr.</p>
  918. <p>It is recommended that you reach out to the developers of the software
  919. you're having troubles with and asking them to add a fallback to
  920. regular file IO when <strong>mmap</strong> is unavailable. It is not only more
  921. compatible and resilient but also can be more performant in certain
  922. situations.</p>
  923. <p>If the issue is that quick scanning doesn't seem to pick up media then
  924. be sure to set <code>func.getattr=newest</code>, though generally, a full scan
  925. will pick up all media anyway.</p>
  926. <h3 id="when-a-program-tries-to-move-or-rename-a-file-it-fails">When a program tries to move or rename a file it fails</h3>
  927. <p>Please read the docs regarding <a href="../config/rename_and_link/">rename and
  928. link</a>.</p>
  929. <p>The problem is that many applications do not properly handle <code>EXDEV</code>
  930. errors which <code>rename</code> and <code>link</code> may return even though they are
  931. perfectly valid situations which do not indicate actual device,
  932. filesystem, or OS errors. The error will only be returned by mergerfs
  933. if using a path preserving policy as described in the policy section
  934. above. If you do not care about path preservation simply change the
  935. mergerfs policy to the non-path preserving version. For example: <code>-o
  936. category.create=mfs</code> Ideally the offending software would be fixed and
  937. it is recommended that if you run into this problem you contact the
  938. software's author and request proper handling of <code>EXDEV</code> errors.</p>
  939. <h3 id="my-32bit-software-has-problems">my 32bit software has problems</h3>
  940. <p>Some software have problems with 64bit inode values. The symptoms can
  941. include EOVERFLOW errors when trying to list files. You can address
  942. this by setting <code>inodecalc</code> to one of the 32bit based algos as
  943. described in the relevant section.</p>
  944. <h3 id="moving-files-and-directories-fails-with-samba">Moving files and directories fails with Samba</h3>
  945. <p>Workaround: Copy the file/directory and then remove the original
  946. rather than move.</p>
  947. <p>This isn't an issue with Samba but some SMB clients. GVFS-fuse v1.20.3
  948. and prior (found in Ubuntu 14.04 among others) failed to handle
  949. certain error codes correctly. Particularly <code>STATUS_NOT_SAME_DEVICE</code>
  950. which comes from the <code>EXDEV</code> that is returned by <code>rename</code> when the
  951. call is crossing mount points. When a program gets an <code>EXDEV</code> it needs
  952. to explicitly take an alternate action to accomplish its goal. In the
  953. case of <code>mv</code> or similar it tries <code>rename</code> and on <code>EXDEV</code> falls back to
  954. a copying the file to the destination and deleting the source. In
  955. these older versions of GVFS-fuse if it received <code>EXDEV</code> it would
  956. translate that into <code>EIO</code>. This would cause <code>mv</code> or most any
  957. application attempting to move files around on that SMB share to fail
  958. with a generic IO error.</p>
  959. <p><a href="https://bugzilla.gnome.org/show_bug.cgi?id=734568">GVFS-fuse v1.22.0</a>
  960. and above fixed this issue but a large number of systems use the older
  961. release. On Ubuntu, the version can be checked by issuing <code>apt-cache
  962. showpkg gvfs-fuse</code>. Most distros released in 2015 seem to have the
  963. updated release and will work fine but older systems may
  964. not. Upgrading gvfs-fuse or the distro in general will address the
  965. problem.</p>
  966. <p>In Apple's MacOSX 10.9 they replaced Samba (client and server) with
  967. their own product. It appears their new client does not handle
  968. <code>EXDEV</code> either and responds similarly to older releases of gvfs on
  969. Linux.</p>
  970. <h3 id="trashing-files-occasionally-fails">Trashing files occasionally fails</h3>
  971. <p>This is the same issue as with Samba. <code>rename</code> returns <code>EXDEV</code> (in our
  972. case that will really only happen with path preserving policies like
  973. <code>epmfs</code>) and the software doesn't handle the situation well. This is
  974. unfortunately a common failure of software which moves files
  975. around. The standard indicates that an implementation <strong>MAY</strong> choose
  976. to support non-user home directory trashing of files (which is a
  977. <strong>MUST</strong>). The implementation <strong>MAY</strong> also support "top directory
  978. trashes" which many probably do.</p>
  979. <p>To create a <code>$topdir/.Trash</code> directory as defined in the standard use
  980. the <a href="https://github.com/trapexit/mergerfs-tools">mergerfs-tools</a> tool
  981. <code>mergerfs.mktrash</code>.</p>
  982. <h2 id="fuse-and-linux-kernel">FUSE and Linux kernel</h2>
  983. <p>There have been a number of kernel issues / bugs over the years which
  984. mergerfs has run into. Here is a list of them for reference and
  985. posterity.</p>
  986. <h3 id="nfs-and-eio-errors">NFS and EIO errors</h3>
  987. <p><a href="https://lore.kernel.org/linux-fsdevel/20240228160213.1988854-1-mszeredi@redhat.com/T/">https://lore.kernel.org/linux-fsdevel/20240228160213.1988854-1-mszeredi@redhat.com/T/</a></p>
  988. <p>Over the years some users have reported that while exporting mergerfs
  989. via NFS, after significant filesystem activity, not only will the NFS
  990. client start returning ESTALE and EIO errors but mergerfs itself would
  991. start returning EIO errors. The problem was that no one could
  992. reliability reproduce the issue. After a string of reports in late
  993. 2023 and early 2024 more investigation was done.</p>
  994. <p>In Linux 5.14 new validation was put into FUSE which caught a few
  995. invalid situations and would tag a FUSE node as invalid if a check
  996. failed. Such checks include invalid file type, changing of type from
  997. one request to another, a size greater than 63bit, and the generation
  998. of a inode changing while in use.</p>
  999. <p>What happened was that mergerfs was using a different fixed, non-zero
  1000. value for the generation of all nodes as it was suggested that unique
  1001. inode + generation pairs are needed for proper integration with
  1002. NFS. That non-zero value was being sent back to the kernel when a
  1003. lookup request was made for root. The reason this was hard to track
  1004. down was because NFS almost uniquely uses an API which can lead to a
  1005. lookup of the root node that simply won't happen under normal
  1006. workloads and usage. And that lookup will only happen if child nodes
  1007. of the root were forgotten but NFS still had a handle to that node and
  1008. later asked for details about it. It would trigger a set of requests
  1009. to lookup info on those nodes.</p>
  1010. <p>This wasn't a bug in FUSE but mergerfs. However, the incorrect
  1011. behavior of mergerfs lead to FUSE behave in an unexpected and
  1012. incorrect manner. It would issue a lookup of the "parent of a child of
  1013. the root" and mergerfs would send the invalid generation value. As a
  1014. result the kernel would mark the root node as "bad" which would then
  1015. trigger the kernel to issue a "forget root" message. In between those
  1016. it would issue a request for the parent of the root... which doesn't
  1017. exist.</p>
  1018. <p>So the kernel was doing two invalid things. Requesting the parent of
  1019. the root and then when that failed issuing a forget for the
  1020. root. These led to chasing after the wrong possible causes.</p>
  1021. <p>The change was for FUSE to revert the marking of root node bad if the
  1022. generation is non-zero and warn about it. It will mark the node bad
  1023. but not unhash/forget/remove it.</p>
  1024. <p>mergerfs in v2.40.1 ensures that generation for root is always 0 on
  1025. lookup which should work across any kernel version.</p>
  1026. <h3 id="truncated-files">Truncated files</h3>
  1027. <p>This was a bug with <code>mmap</code> and <code>FUSE</code> on 32bit platforms. Should be fixed in all LTS releases.</p>
  1028. <ul>
  1029. <li><a href="https://marc.info/?l=linux-fsdevel&amp;m=155550785230874&amp;w=2">https://marc.info/?l=linux-fsdevel&amp;m=155550785230874&amp;w=2</a></li>
  1030. </ul>
  1031. <h3 id="crashing-on-openvz">Crashing on OpenVZ</h3>
  1032. <p>There was a bug in the OpenVZ kernel with regard to how it handles <code>ioctl</code> calls. It was making invalid requests which would lead to crashes due to mergerfs not expecting them.</p>
  1033. <ul>
  1034. <li><a href="https://bugs.openvz.org/browse/OVZ-7145">https://bugs.openvz.org/browse/OVZ-7145</a></li>
  1035. <li><a href="https://www.mail-archive.com/devel@openvz.org/msg37096.html">https://www.mail-archive.com/devel@openvz.org/msg37096.html</a></li>
  1036. </ul>
  1037. <h3 id="really-bad-mmap-performance">Really bad mmap performance</h3>
  1038. <p>There was a bug in caching which affects overall performance of <code>mmap</code> through <code>FUSE</code> in Linux 4.x kernels. It is fixed in 4.4.10 and 4.5.4.</p>
  1039. <ul>
  1040. <li><a href="https://lkml.org/lkml/2016/3/16/260">https://lkml.org/lkml/2016/3/16/260</a></li>
  1041. <li><a href="https://lkml.org/lkml/2016/5/11/59">https://lkml.org/lkml/2016/5/11/59</a></li>
  1042. </ul>
  1043. <h3 id="heavy-load-and-memory-pressure-leads-to-kernel-panic">Heavy load and memory pressure leads to kernel panic</h3>
  1044. <ul>
  1045. <li><a href="https://lkml.org/lkml/2016/9/14/527">https://lkml.org/lkml/2016/9/14/527</a></li>
  1046. <li><a href="https://lkml.org/lkml/2016/10/4/1">https://lkml.org/lkml/2016/10/4/1</a></li>
  1047. <li><a href="https://www.theregister.com/2016/10/05/linus_torvalds_admits_buggy_crap_made_it_into_linux_48/">https://www.theregister.com/2016/10/05/linus_torvalds_admits_buggy_crap_made_it_into_linux_48/</a></li>
  1048. </ul>
  1049. </article>
  1050. </div>
  1051. <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
  1052. </div>
  1053. <button type="button" class="md-top md-icon" data-md-component="top" hidden>
  1054. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
  1055. Back to top
  1056. </button>
  1057. </main>
  1058. <footer class="md-footer">
  1059. <nav class="md-footer__inner md-grid" aria-label="Footer" >
  1060. <a href="../tips_notes/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Tips and Notes">
  1061. <div class="md-footer__button md-icon">
  1062. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
  1063. </div>
  1064. <div class="md-footer__title">
  1065. <span class="md-footer__direction">
  1066. Previous
  1067. </span>
  1068. <div class="md-ellipsis">
  1069. Tips and Notes
  1070. </div>
  1071. </div>
  1072. </a>
  1073. <a href="../project_comparisons/" class="md-footer__link md-footer__link--next" aria-label="Next: Project Comparisons">
  1074. <div class="md-footer__title">
  1075. <span class="md-footer__direction">
  1076. Next
  1077. </span>
  1078. <div class="md-ellipsis">
  1079. Project Comparisons
  1080. </div>
  1081. </div>
  1082. <div class="md-footer__button md-icon">
  1083. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
  1084. </div>
  1085. </a>
  1086. </nav>
  1087. <div class="md-footer-meta md-typeset">
  1088. <div class="md-footer-meta__inner md-grid">
  1089. <div class="md-copyright">
  1090. Made with
  1091. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  1092. Material for MkDocs
  1093. </a>
  1094. </div>
  1095. </div>
  1096. </div>
  1097. </footer>
  1098. </div>
  1099. <div class="md-dialog" data-md-component="dialog">
  1100. <div class="md-dialog__inner md-typeset"></div>
  1101. </div>
  1102. <script id="__config" type="application/json">{"base": "..", "features": ["content.action.edit", "content.action.view", "content.code.copy", "content.code.select", "navigation.footer", "navigation.instant", "navigation.instant.prefetch", "navigation.path", "navigation.top", "navigation.tracking", "optimize", "search.share", "toc.follow"], "search": "../assets/javascripts/workers/search.f8cc74c7.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
  1103. <script src="../assets/javascripts/bundle.60a45f97.min.js"></script>
  1104. </body>
  1105. </html>