Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

emhttpd crashes on start — get_diskFsSizes diskFsType.0 not found, disk.cfg missing slot-0 keys (7.2.0)

Featured Replies

Version: 7.2.0 (kernel 6.12.54-Unraid)

  Array state: STARTED, 25 disks, no invalid/missing/disabled per mdcmd status                                                      

  emhttpd: not running                                                                                                                

                                                                                                                                      

  Symptoms                                                                                                                            

  --------                                                     

  - WebGUI stale for weeks (disks.ini mtime frozen at 2026-04-01)                                                                     

  - POST /update.htm actions fail: nginx error.log shows                                                                              

    connect() to unix:/var/run/emhttpd.socket failed (111: Connection refused)                                                      

  - Parity-cancel from Main doesn't register                                                                                          

  - Array, shares, dockers still function via shfs; only the GUI / emhttpd is down                                                    

                                                                                                                                      

  What I've verified over SSH                                                                                                         

  ---------------------------                                                                                                         

  1. pidof emhttpd is empty. Manual restarts /etc/rc.d/rc.emhttpd restart)                                                       

     log:                                                                                                                             

         emhttpd: unclean shutdown detected

         emhttpd: shcmd (6): /usr/local/emhttp/webGui/scripts/update_access                                                           

         emhttpd: shcmd (7): modprobe zfs                                                                                             

         emhttpd: Lifetime key detected, GUID: ...                                                                                    

         emhttpd: get_diskFsSizes 8588 diskFsType.0 not found                                                                         

     …and the process exits.                                                                                                          

                                                                                                                                      

  2. /boot/config/disk.cfg has no slot-0 keys at all — no diskId.0,                                                               

     diskSlot.0, diskFsType.0, nothing. Slots 1–23 are fully populated.                                                           

                                                                                                                                      

  3. /var/local/emhttp/disks.ini still has the parity entry correctly                                                               

     (idx=0, name=parity, device=sdk, id=HUH721212ALE601_8HGYTV7Y, status                                                             

     DISK_OK, size 11718885324). So the md driver knows about parity;                                                                 

     only the persisted config has lost slot 0.                                                                                       

                                                                                                                                      

  4. /boot/config/forcesync has been present since 2026-02-28 14:34.                                                                

     Parity history /boot/config/parity-checks.log):                                                                               

         2026 Feb 28  3600s  sbSyncExit=-4 (cancelled)                                                                                

         2026 Mar 21  764317s  15,700,473 errors  sbSyncExit=0                                                                        

     i.e. parity has been unhealthy for months.                                                                                       

                                                                                                                                      

  5. Earlier in this sequence, one of my SSH sessions caught this in syslog:                                                          

         put_config ... rename: /boot/config/ident.cfg.new /boot/config/ident.cfg                                                     

         → No such file or directory                                                                                                  

     It's transient now (/boot is rw, touches succeed), but it matches the                                                            

     pattern of a botched put_config write that could have truncated                                                                  

     disk.cfg too.                                                                                                                    

                                                                                                                                      

  What I've done                                               

  --------------                                                                                                                      

  - Backed up disk.cfg → /boot/config/disk.cfg.backup-20260418-001039

  - No config edits, no mdcmd stop, no reboot.                                                                                      

  - Generated diagnostics (attached).                                                                                                 

                                                                                                                                      

  Questions                                                                                                                           

  ---------                                                                                                                           

  1. What's the correct slot-0 stanza for a parity disk in disk.cfg on 7.2.0?

     I can reconstruct from disks.ini but want the exact expected keys before                                                         

     writing.                                                                                                                         

  2. Does rename: /boot/config/ident.cfg.new ... indicate flash corruption                                                          

     worth addressing before the next reboot?                                                                                         

  3. Safe to clear /boot/config/forcesync before the first good emhttpd                                                             

     start, or leave it so the next boot runs a full parity check?                                                                    

                                                                                                                                      

  Holding off on reboots and mdcmd stop until I have guidance. Happy to run                                                           

  specific commands and report back.         

levyserver-diagnostics-20260418-0010.zip

  • 3 months later...

Confirming this bug on 7.2.0 with a second, independent case — and adding two fix attempts that did NOT work, in case they help narrow it down.

Same crash signature, on array Start (cmdStart):

emhttpd[NNNNN]: segfault at 0 ip ... error 4 in libc-2.42.so[182387,...]

"segfault at 0" + "error 4" = a NULL-pointer READ, i.e. emhttpd hands a NULL string to a libc string function while enumerating disk/pool config at Start. It reproduces 100% of the time and dies ~2 seconds after cmdStart with no emhttpd log output. Crucially it faults at the SAME libc offset (182387) every time.

Environment:

- Unraid 7.2.0, kernel 6.12.54, glibc 2.42

- Dual-socket Supermicro, LSI SAS3008 HBA

- Parity is DISABLED on this array (mdNumDisabled=2), so slot 0 has no assigned device

- Data disk is ZFS; a large multi-vdev ZFS pool is also configured as a pool

Like the OP, /boot/config/disk.cfg is missing its slot-0 key set. The ONLY slot-0 keys present are:

diskIdSlot.0="-"

diskSpindownDelay.0="-1"

diskSpinupGroup.0=""

There is no diskId.0, no diskFsType.0, no diskSize.0, no diskName.0 — while slots 1-23 are fully populated (diskFsType.1="zfs", etc.).

What I tried, and what happened:

1) Regenerate disk.cfg (the recommended workaround): backed up disk.cfg, renamed it out, rebooted. Unraid regenerated it — but the regenerated file STILL had no diskFsType.0 (with parity disabled, regen never writes a parity-slot fs key). Array Start still segfaulted.

2) Manually added diskFsType.0="" and diskSize.0="0" to disk.cfg and restarted emhttpd. Array Start STILL segfaulted, at the identical libc offset (182387).

The takeaway from (2): because giving diskFsType.0 a valid value did not change or eliminate the crash, the NULL field being dereferenced is NOT diskFsType.0 — it's some other slot-0 / start-time config value that's missing when parity is disabled. It can't be pinned down from userspace on 7.2.0 (no gdb/strace shipped).

The common trigger across both cases looks like a partially-defined slot 0 (parity slot present in config as diskIdSlot.0="-" but with no diskId/diskFsType/diskSize/diskName keys), which the 7.2.0 Start path dereferences without a NULL check.

Data is 100% safe here — both pools import and mount cleanly with zero errors; only the emhttpd Start path is affected. I'm running services via a manual mount + docker bring-up outside emhttpd in the meantime.

Happy to provide full diagnostics, the exact disk.cfg, or to run a debug emhttpd build / an rc with the added telemetry to identify which slot-0 field is dereferenced with parity disabled. Let me know what would be most useful.

unraid-diagnostics-20260807-1023.zip

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.