November 9, 2025Nov 9 SCSI Enclosure Monitorhttps://github.com/desertwitch/sesmonhttps://github.com/desertwitch/sesmon-unRAIDMonitors SES-capable SCSI enclosures (such as disk shelves)Tested to work with the popular NetApp IOMs (specifically IOM6 in DS4246)Installable via Community Applications
November 12, 2025Nov 12 I've had a crack at this on my set up, even though mine's a EMC KTN-STL3.The log reports:sesmon: /dev/sg25:0x50060480000dc33e: "sg_ses": [3/3] execution failure: signal: segmentation fault: stdout=[] stderr=[report timestamp: transport: Host_status=0x0b [DID_SOFT_ERROR]I'm assuming it's because it's not a NetApp, do you have any plans to support other disk shelves?
November 12, 2025Nov 12 Author 2 hours ago, minkshaman said:I've had a crack at this on my set up, even though mine's a EMC KTN-STL3.The log reports:sesmon: /dev/sg25:0x50060480000dc33e: "sg_ses": [3/3] execution failure: signal: segmentation fault: stdout=[] stderr=[report timestamp: transport: Host_status=0x0b [DID_SOFT_ERROR]I'm assuming it's because it's not a NetApp, do you have any plans to support other disk shelves?The service just wraps the sg_ses binary, which should support all SES-capable devices (including yours).I think the issue is that your device does not support the timestamp it tries to get from it and sends a malformed response.I've added an argument which avoids this, as we do not strictly need the timestamp, and the latest update should fix it - let me know!
November 12, 2025Nov 12 16 hours ago, Rysz said:The service just wraps the sg_ses binary, which should support all SES-capable devices (including yours).I think the issue is that your device does not support the timestamp it tries to get from it and sends a malformed response.I've added an argument which avoids this, as we do not strictly need the timestamp, and the latest update should fix it - let me know!Thanks, I really appreciate the effort!I've tried the new version and it's failed with no real error.Service ConfigurationSCSI Enclosures ( lsscsi -g | grep enclosu ): [6:0:15:0] enclosu EMC ESES Enclosure 0001 - /dev/sg25 SCSI Enclosure Addresses ( lsscsi -gt | grep enclosu ): [6:0:15:0] enclosu sas:0x50060480000dc33e - /dev/sg25 <13>Nov 13 10:39:39 sesmon: /dev/sg25:0x50060480000dc33e: Monitoring [/dev/sg25:0x50060480000dc33e] with configuration [{"poll_interval":"1m30s","poll_attempts":3,"poll_attempt_timeout":"15s","poll_attempt_interval":"15s","poll_backoff_after":3,"poll_backoff_time":"3m0s","poll_backoff_notify":true,"poll_backoff_stopmonitor":false,"output_dir":"/var/lib/sesmon/JBOD","verbose":true}]; and notification agent [script_notifier] with configuration ["/etc/sesmon/notify.sh":{"notify_attempts":3,"notify_attempt_timeout":"15s","notify_attempt_interval":"15s"}]<13>Nov 13 10:39:39 sesmon: /dev/sg25:0x50060480000dc33e: "sg_ses": [1/3] execution failure: signal: segmentation fault: stdout=[] stderr=[]<13>Nov 13 10:39:54 sesmon: /dev/sg25:0x50060480000dc33e: "sg_ses": [2/3] execution failure: signal: segmentation fault: stdout=[] stderr=[]<13>Nov 13 10:40:09 sesmon: /dev/sg25:0x50060480000dc33e: "sg_ses": [3/3] execution failure: signal: segmentation fault: stdout=[] stderr=[]<13>Nov 13 10:40:09 sesmon: /dev/sg25:0x50060480000dc33e: Error polling device [1/3]: failure fetching from device: "sg_ses": [3/3] execution failure: signal: segmentation fault: stdout=[] stderr=[]Any ideas?
November 12, 2025Nov 12 Author 2 minutes ago, minkshaman said:Thanks, I really appreciate the effort!I've tried the new version and it's failed with no real error.Service ConfigurationSCSI Enclosures ( lsscsi -g | grep enclosu ):[6:0:15:0] enclosu EMC ESES Enclosure 0001 - /dev/sg25 SCSI Enclosure Addresses ( lsscsi -gt | grep enclosu ):[6:0:15:0] enclosu sas:0x50060480000dc33e - /dev/sg25 <13>Nov 13 10:39:39 sesmon: /dev/sg25:0x50060480000dc33e: Monitoring [/dev/sg25:0x50060480000dc33e] with configuration [{"poll_interval":"1m30s","poll_attempts":3,"poll_attempt_timeout":"15s","poll_attempt_interval":"15s","poll_backoff_after":3,"poll_backoff_time":"3m0s","poll_backoff_notify":true,"poll_backoff_stopmonitor":false,"output_dir":"/var/lib/sesmon/JBOD","verbose":true}]; and notification agent [script_notifier] with configuration ["/etc/sesmon/notify.sh":{"notify_attempts":3,"notify_attempt_timeout":"15s","notify_attempt_interval":"15s"}]<13>Nov 13 10:39:39 sesmon: /dev/sg25:0x50060480000dc33e: "sg_ses": [1/3] execution failure: signal: segmentation fault: stdout=[] stderr=[]<13>Nov 13 10:39:54 sesmon: /dev/sg25:0x50060480000dc33e: "sg_ses": [2/3] execution failure: signal: segmentation fault: stdout=[] stderr=[]<13>Nov 13 10:40:09 sesmon: /dev/sg25:0x50060480000dc33e: "sg_ses": [3/3] execution failure: signal: segmentation fault: stdout=[] stderr=[]<13>Nov 13 10:40:09 sesmon: /dev/sg25:0x50060480000dc33e: Error polling device [1/3]: failure fetching from device: "sg_ses": [3/3] execution failure: signal: segmentation fault: stdout=[] stderr=[]Any ideas?What happens when you run:sg_ses --all --json --no-time /dev/sg25
November 12, 2025Nov 12 Just now, Rysz said:What happens when you run:sg_ses --all --json --no-time /dev/sg25root@PowerEdge:~# sg_ses --all --json --no-time /dev/sg25Segmentation fault sg_ses --all --json --no-time /dev/sg25
November 12, 2025Nov 12 Author Just now, minkshaman said:root@PowerEdge:~# sg_ses --all --json --no-time /dev/sg25Segmentation fault sg_ses --all --json --no-time /dev/sg25I'm afraid nothing we can do then, it's most likely a malformed/unknown response from the enclosure.The segmentation fault is due to an unhandled exception in the sg_ses binary (which is unfortunately unmaintained).Thanks for trying though and reporting back, even if it did not work out in the end...
November 12, 2025Nov 12 Is it possible that I was mistaken in the connection of the device?I understood that i didn't need to connect both data ports as the second was for daisy chaining for more disk shelves.Was I wrong?I mean, it works... Edited November 12, 2025Nov 12 by minkshaman
November 12, 2025Nov 12 Author Just now, minkshaman said:Is it possible that I was mistaken in the connection of the device?I understood that i didn't need to connect both data ports as the second was for daisy chaining for more disk shelves.Was I wrong?No, it should work if your disks work normally in Unraid - it's possible that the in-band SES protocol is not fully compliant for the enclosure.
November 12, 2025Nov 12 Just now, Rysz said:No, it should work if your disks work normally in Unraid - it's possible that the in-band SES protocol is not fully compliant for the enclosure.No worries then, I really love the plugin though, I was excited to get some stats from my diskshelf!Next step we need someone to implement the iDRAC Service Module as a plugin!
November 13, 2025Nov 13 So I got curious on the outputs that the sg_ses tool could see and started going through them...I've put the output for --page=es and --page=cf in a txt if it's of any use to you!I can see on reddit that people have gotten fan speed and temphttps://www.reddit.com/r/homelab/comments/pyynm2/emc_sae_vnx_disk_shelf_question/sg_ses devbsg60150.txt
November 13, 2025Nov 13 Author 33 minutes ago, minkshaman said:So I got curious on the outputs that the sg_ses tool could see and started going through them...I've put the output for --page=es and --page=cf in a txt if it's of any use to you!I can see on reddit that people have gotten fan speed and temphttps://www.reddit.com/r/homelab/comments/pyynm2/emc_sae_vnx_disk_shelf_question/sg_ses devbsg60150.txtThat's great, can you run both pages with --json and post the output in one file for each page? Maybe I can put something together with that or find the bug in the sg_ses tool.
November 14, 2025Nov 14 23 hours ago, Rysz said:That's great, can you run both pages with --json and post the output in one file for each page? Maybe I can put something together with that or find the bug in the sg_ses tool.sg_ses --json.txtsg_ses --page=cf.txtsg_ses --page=es.txtHopefully you can work with these! :)
November 23, 2025Nov 23 Author On 11/20/2025 at 1:18 AM, minkshaman said:@RyszAny progress?Unfortunately the format is wildly different, to the point it'd require a rewrite of the core daemon logic.It's not something I can do at the moment, but I'll put it on the TO-DO list for the future... (no promises, I'm afraid).The issue is that your device doesn't fully implement the SES standard and sends malformed responses to some commands.This in turn is not handled gracefully by the - unfortunately unmaintained - sg_ses program, which crashes with the unexpected response.Even if I were to identify where the crash in the sg_ses program is coming from and fixed it, I couldn't ship it as it's embedded in the Unraid OS.My plugin and daemon are basically reliant on the sg_ses program working normally, which it should if the device has a clean SES implementation.I appreciate you posting the files though, and I hope to make use of them to design an alternative polling path for such devices in the future - many thanks! 🤗
November 28, 2025Nov 28 Same issue, I have a HP Gen8 Server's 12+2 backplane, sg_ses --all --no-time /dev/sg12 success, but when I run sg_ses --all --json --no-time /dev/sg12 got Segmentation fault
November 28, 2025Nov 28 Author 1 hour ago, Wu23333 said:Same issue, I have a HP Gen8 Server's 12+2 backplane, sg_ses --all --no-time /dev/sg12 success, but when I run sg_ses --all --json --no-time /dev/sg12 got Segmentation faultSorry, same applies to you, we're out of luck as the sg_ses binary is both OS-embedded and the sg3_utils project is unmaintained.If anyone has experience with GDB and could provide me with a stack trace, I might be able to patch it up, but without a crashing device I can't do anything.
November 28, 2025Nov 28 Author @Wu23333 @minkshaman Can you try running with -vvvvvv, like `sg_ses -vvvvvv --all --json --no-time /dev/sg12?Maybe it prints some information leading up to the segmentation fault that gives me some clues...
November 28, 2025Nov 28 @Rysz Thanks for the relay. I understand that this outdated backplane does indeed have many issues. I plan to try debugging sg_ses, though I don't hold out much hope.Additionally, here is the output with -vvvvvv:root@Tower:~# sg_ses -vvvvvv --all --json --no-time /dev/sg12 open /dev/sg12 with flags=0x802 check_file_type: file descriptor is sg device set_pt_file_handle: sg driver version 3.05.36 so choose v3 inquiry cdb: [12 00 00 00 24 00] do_scsi_pt: is_nvme=0, is_sg=1, is_bsg=0 duration=0 ms request sense cdb: [03 00 00 00 fc 00] do_scsi_pt: is_nvme=0, is_sg=1, is_bsg=0 duration=0 ms request sense: pass-through requested 252 bytes (data-in), got 18 bytes Receive diagnostic results command for Configuration (SES) diagnostic page Receive diagnostic results cdb: [1c 01 01 ff fc 00] do_scsi_pt: is_nvme=0, is_sg=1, is_bsg=0 duration=0 ms Receive diagnostic results: pass-through requested 65532 bytes (data-in), got 260 bytes Receive diagnostic results: response: 00 01 00 01 00 00 00 00 00 11 00 05 44 50 01 43 80 ...........DP.C. 10 34 f3 94 80 48 50 20 20 20 20 20 20 47 65 6e 38 4...HP Gen8 20 20 53 65 72 76 42 50 20 31 32 2b 32 33 2e 33 30 ServBP 12+23.30 30 4d 61 78 69 6d 20 49 6e 74 65 67 72 61 74 65 64 Maxim Integrated 40 20 50 72 6f 64 75 63 74 73 2c 20 49 6e 63 2e 00 Products, Inc.. 50 17 0e 00 20 07 01 00 20 0e 01 00 20 18 01 00 20 ... ... ... ... 60 19 18 00 20 44 72 69 76 65 20 42 61 79 20 20 20 ... Drive Bay 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 80 00 00 00 00 45 6e 63 6c 6f 73 75 72 65 20 53 65 ....Enclosure Se 90 72 76 69 63 65 20 43 6f 6e 74 72 6f 6c 6c 65 72 rvice Controller a0 00 00 00 00 45 6e 63 6c 6f 73 75 72 65 20 20 20 ....Enclosure b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c0 00 00 00 00 53 41 53 20 45 78 70 61 6e 64 65 72 ....SAS Expander d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e0 00 00 00 00 53 41 53 20 45 78 70 61 6e 64 65 72 ....SAS Expander f0 20 50 68 79 20 20 20 20 20 20 20 20 20 20 20 20 Phy 100 00 00 00 00 .... Receive diagnostic results command for Enclosure Status (SES) diagnostic page Receive diagnostic results cdb: [1c 01 02 ff fc 00] do_scsi_pt: is_nvme=0, is_sg=1, is_bsg=0 duration=0 ms Receive diagnostic results: pass-through requested 65532 bytes (data-in), got 192 bytes Receive diagnostic results: response: 00 02 00 00 bc 00 00 00 00 00 00 00 00 05 80 40 00 ..............@. 10 05 80 40 00 01 80 40 00 01 80 40 00 05 80 40 00 ..@...@...@...@. 20 01 80 40 00 01 80 40 00 01 80 40 00 01 80 40 00 ..@...@...@...@. 30 05 80 40 00 05 80 40 00 05 80 40 00 05 00 00 00 ..@...@...@..... 40 05 00 00 00 00 00 00 00 01 00 01 00 00 00 00 00 ................ 50 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................ 60 01 20 00 00 01 20 00 00 01 20 00 00 01 20 00 00 . ... ... ... .. 70 01 20 00 00 01 20 00 00 01 20 00 00 01 20 00 00 . ... ... ... .. 80 01 20 00 00 01 20 00 00 01 20 00 00 01 20 00 00 . ... ... ... .. 90 01 20 00 00 01 20 00 00 25 00 00 00 25 00 00 00 . ... ..%...%... a0 01 11 00 00 01 11 01 00 01 11 02 00 01 11 03 00 ................ b0 01 11 00 00 01 11 01 00 01 11 02 00 01 11 03 00 ................ Receive diagnostic results command for Element Descriptor (SES) diagnostic page Receive diagnostic results cdb: [1c 01 07 ff fc 00] do_scsi_pt: is_nvme=0, is_sg=1, is_bsg=0 duration=0 ms Receive diagnostic results: Fixed format, current; Sense key: Illegal Request Additional sense: Invalid command operation code Raw sense data (in hex), sb_len=18, calculated_len=18 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 Receive diagnostic results: pass-through requested 65532 bytes (data-in), got 0 bytes Attempt to fetch Element Descriptor (SES) diagnostic page failed Illegal request, Invalid opcode, type: sense key + asc,ascq Element Descriptor page not available Receive diagnostic results command for Additional Element Status (SES-2) diagnostic page Receive diagnostic results cdb: [1c 01 0a ff fc 00] do_scsi_pt: is_nvme=0, is_sg=1, is_bsg=0 duration=0 ms Receive diagnostic results: pass-through requested 65532 bytes (data-in), got 576 bytes Receive diagnostic results: response: 00 0a 00 02 3c 00 00 00 00 16 22 01 01 01 01 00 01 ...<....."...... 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20 00 00 00 00 00 00 00 00 00 00 00 00 16 22 01 02 .............".. 30 01 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 ................ 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 50 16 22 01 03 01 01 00 03 00 00 00 01 50 01 43 80 ."..........P.C. 60 34 f3 94 80 50 01 43 80 34 f3 94 83 00 00 00 00 4...P.C.4....... 70 00 00 00 00 16 22 01 04 01 01 00 04 00 00 00 01 .....".......... 80 50 01 43 80 34 f3 94 80 50 01 43 80 34 f3 94 84 P.C.4...P.C.4... 90 00 00 00 00 00 00 00 00 16 22 01 05 01 01 00 05 ........."...... a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ b0 00 00 00 00 00 00 00 00 00 00 00 00 16 22 01 06 .............".. c0 01 01 00 06 00 00 00 01 50 01 43 80 34 f3 94 80 ........P.C.4... d0 50 01 43 80 34 f3 94 86 00 00 00 00 00 00 00 00 P.C.4........... e0 16 22 01 07 01 01 00 07 00 00 00 01 50 01 43 80 ."..........P.C. f0 34 f3 94 80 50 01 43 80 34 f3 94 87 00 00 00 00 4...P.C.4....... 100 00 00 00 00 16 22 01 08 01 01 00 08 00 00 00 01 .....".......... 110 50 01 43 80 34 f3 94 80 50 01 43 80 34 f3 94 88 P.C.4...P.C.4... 120 00 00 00 00 00 00 00 00 16 22 01 09 01 01 00 09 ........."...... 130 00 00 00 01 50 01 43 80 34 f3 94 80 50 01 43 80 ....P.C.4...P.C. 140 34 f3 94 89 00 00 00 00 00 00 00 00 16 22 01 0a 4............".. 150 01 01 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 ................ 160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 170 16 22 01 0b 01 01 00 0b 00 00 00 00 00 00 00 00 .".............. 180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 190 00 00 00 00 16 22 01 0c 01 01 00 0c 00 00 00 00 .....".......... 1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1b0 00 00 00 00 00 00 00 00 16 22 01 0d 01 01 00 0d ........."...... 1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1d0 00 00 00 00 00 00 00 00 00 00 00 00 16 22 01 0e .............".. 1e0 01 01 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 200 16 3e 01 01 18 40 00 00 50 01 43 80 34 f3 94 80 .>[email protected]... 210 ff 01 ff 02 ff 03 ff 04 ff 05 ff 06 ff 07 ff 08 ................ 220 ff 09 ff 0a ff 0b ff 0c ff 0d ff 0e ff ff ff ff ................ 230 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ warning: aes slot already in use, keep existing AES+8 dropping AES+512 [length=64, oi=1, ei=1, aes_i=14] warning: join_aes_helper: off end of ae page Dump of join array, each line is a row. Lines start with [<element_type>: <type_hdr_index>,<elem_ind_within>] '-1' indicates overall element or not applicable. [0x17: 0,-1] ei_ioe,_eoe,_aess=0,-1,-1 dsn=-1 ES+8 [0x17: 0,0] ei_ioe,_eoe,_aess=1,0,0 dsn=1 ES+12 AES+8 [0x17: 0,1] ei_ioe,_eoe,_aess=2,1,1 dsn=2 ES+16 AES+44 [0x17: 0,2] ei_ioe,_eoe,_aess=3,2,2 dsn=3 ES+20 AES+80 [0x17: 0,3] ei_ioe,_eoe,_aess=4,3,3 dsn=4 ES+24 AES+116 [0x17: 0,4] ei_ioe,_eoe,_aess=5,4,4 dsn=5 ES+28 AES+152 [0x17: 0,5] ei_ioe,_eoe,_aess=6,5,5 dsn=6 ES+32 AES+188 [0x17: 0,6] ei_ioe,_eoe,_aess=7,6,6 dsn=7 ES+36 AES+224 [0x17: 0,7] ei_ioe,_eoe,_aess=8,7,7 dsn=8 ES+40 AES+260 [0x17: 0,8] ei_ioe,_eoe,_aess=9,8,8 dsn=9 ES+44 AES+296 [0x17: 0,9] ei_ioe,_eoe,_aess=10,9,9 dsn=10 ES+48 AES+332 [0x17: 0,10] ei_ioe,_eoe,_aess=11,10,10 dsn=11 ES+52 AES+368 [0x17: 0,11] ei_ioe,_eoe,_aess=12,11,11 dsn=12 ES+56 AES+404 [0x17: 0,12] ei_ioe,_eoe,_aess=13,12,12 dsn=13 ES+60 AES+440 [0x17: 0,13] ei_ioe,_eoe,_aess=14,13,13 dsn=14 ES+64 AES+476 [0x7: 1,-1] ei_ioe,_eoe,_aess=15,-1,-1 dsn=-1 ES+68 [0x7: 1,0] ei_ioe,_eoe,_aess=16,14,14 dsn=-1 ES+72 [0xe: 2,-1] ei_ioe,_eoe,_aess=17,-1,-1 dsn=-1 ES+76 [0xe: 2,0] ei_ioe,_eoe,_aess=18,15,-1 dsn=-1 ES+80 [0x18: 3,-1] ei_ioe,_eoe,_aess=19,-1,-1 dsn=-1 ES+84 [0x18: 3,0] ei_ioe,_eoe,_aess=20,16,15 dsn=-1 ES+88 [0x19: 4,-1] ei_ioe,_eoe,_aess=21,-1,-1 dsn=-1 ES+92 [0x19: 4,0] ei_ioe,_eoe,_aess=22,17,-1 dsn=-1 ES+96 [0x19: 4,1] ei_ioe,_eoe,_aess=23,18,-1 dsn=-1 ES+100 [0x19: 4,2] ei_ioe,_eoe,_aess=24,19,-1 dsn=-1 ES+104 [0x19: 4,3] ei_ioe,_eoe,_aess=25,20,-1 dsn=-1 ES+108 [0x19: 4,4] ei_ioe,_eoe,_aess=26,21,-1 dsn=-1 ES+112 [0x19: 4,5] ei_ioe,_eoe,_aess=27,22,-1 dsn=-1 ES+116 [0x19: 4,6] ei_ioe,_eoe,_aess=28,23,-1 dsn=-1 ES+120 [0x19: 4,7] ei_ioe,_eoe,_aess=29,24,-1 dsn=-1 ES+124 [0x19: 4,8] ei_ioe,_eoe,_aess=30,25,-1 dsn=-1 ES+128 [0x19: 4,9] ei_ioe,_eoe,_aess=31,26,-1 dsn=-1 ES+132 [0x19: 4,10] ei_ioe,_eoe,_aess=32,27,-1 dsn=-1 ES+136 [0x19: 4,11] ei_ioe,_eoe,_aess=33,28,-1 dsn=-1 ES+140 [0x19: 4,12] ei_ioe,_eoe,_aess=34,29,-1 dsn=-1 ES+144 [0x19: 4,13] ei_ioe,_eoe,_aess=35,30,-1 dsn=-1 ES+148 [0x19: 4,14] ei_ioe,_eoe,_aess=36,31,-1 dsn=-1 ES+152 [0x19: 4,15] ei_ioe,_eoe,_aess=37,32,-1 dsn=-1 ES+156 [0x19: 4,16] ei_ioe,_eoe,_aess=38,33,-1 dsn=-1 ES+160 [0x19: 4,17] ei_ioe,_eoe,_aess=39,34,-1 dsn=-1 ES+164 [0x19: 4,18] ei_ioe,_eoe,_aess=40,35,-1 dsn=-1 ES+168 [0x19: 4,19] ei_ioe,_eoe,_aess=41,36,-1 dsn=-1 ES+172 [0x19: 4,20] ei_ioe,_eoe,_aess=42,37,-1 dsn=-1 ES+176 [0x19: 4,21] ei_ioe,_eoe,_aess=43,38,-1 dsn=-1 ES+180 [0x19: 4,22] ei_ioe,_eoe,_aess=44,39,-1 dsn=-1 ES+184 [0x19: 4,23] ei_ioe,_eoe,_aess=45,40,-1 dsn=-1 ES+188 >> ES len=192, ED len=0, AES len=576, TI len=0 >> join_arr elements=46, eip_count=14, eiioe_count=14 broken_ei=0 Segmentation fault sg_ses -vvvvvv --all --json --no-time /dev/sg12
November 28, 2025Nov 28 @Rysz @minkshamanGood news! I compiled sg3_utils in debug mode and did some GDB work, found the crash is due to a simple null pointer issue.Then I applied a quick fix for this, re-compile it and replaced the Unraid's sg_ses binary, and now it works!Here's the patch and the compiled sg_ses binary, an custom script may needed to replace the Unraid's binary on system startup.$ diff -u src/sg_ses.c.old src/sg_ses.c --- src/sg_ses.c.old 2025-11-28 23:26:36.834129707 +0800 +++ src/sg_ses.c 2025-11-28 23:27:50.410288483 +0800 @@ -6780,7 +6780,7 @@ if (jsp->pr_as_json) { jo2p = sgj_new_unattached_object_r(jsp); sgj_js_nv_ihexstr(jsp, jo2p, et_sn, jrp->etype, NULL, cp); - sgj_js_nv_s(jsp, jo2p, "descriptor", (const char *)(ed_bp + 4)); + if (ed_bp) sgj_js_nv_s(jsp, jo2p, "descriptor", (const char *)(ed_bp + 4)); sgj_js_nv_i(jsp, jo2p, "element_number", jrp->indiv_i); sgj_js_nv_i(jsp, jo2p, "overall", (int)(-1 == jrp->indiv_i)); sgj_js_nv_b(jsp, jo2p, "individual", (-1 != jrp->indiv_i)); sg_ses
November 28, 2025Nov 28 Author 1 minute ago, Wu23333 said:@Rysz @minkshamanGood news! I compiled sg3_utils in debug mode and did some GDB work, found the crash is due to a simple null pointer issue.Then I applied a quick fix for this, re-compile it and replaced the Unraid's sg_ses binary, and now it works!Here's the patch and the compiled sg_ses binary, an custom script may needed to replace the Unraid's binary on system startup.$ diff -u src/sg_ses.c.old src/sg_ses.c --- src/sg_ses.c.old 2025-11-28 23:26:36.834129707 +0800 +++ src/sg_ses.c 2025-11-28 23:27:50.410288483 +0800 @@ -6780,7 +6780,7 @@ if (jsp->pr_as_json) { jo2p = sgj_new_unattached_object_r(jsp); sgj_js_nv_ihexstr(jsp, jo2p, et_sn, jrp->etype, NULL, cp); - sgj_js_nv_s(jsp, jo2p, "descriptor", (const char *)(ed_bp + 4)); + if (ed_bp) sgj_js_nv_s(jsp, jo2p, "descriptor", (const char *)(ed_bp + 4)); sgj_js_nv_i(jsp, jo2p, "element_number", jrp->indiv_i); sgj_js_nv_i(jsp, jo2p, "overall", (int)(-1 == jrp->indiv_i)); sgj_js_nv_b(jsp, jo2p, "individual", (-1 != jrp->indiv_i)); sg_sesThat is great news, thanks a lot for your effort, I'll package a patched version and we'll use that for the plugin!I hope it will also resolve the issue for @minkshaman with the next update of the plugin.
November 28, 2025Nov 28 10 minutes ago, Rysz said:That is great news, thanks a lot for your effort, I'll package a patched version and we'll use that for the plugin!glad to hear that, it'll be much more convenient. And thanks again for your excellent plugin!
November 29, 2025Nov 29 Author 15 hours ago, Wu23333 said:glad to hear that, it'll be much more convenient. And thanks again for your excellent plugin!The update with the patch is now available, please let me know if it works for you now @Wu23333 @minkshaman .
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.