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.

DiskSpeed, hdd/ssd benchmarking (unRAID 6+), version 2.10.10

Featured Replies

  • Author

Version 2.10.10: USB & SSD Pool Benchmarking

  • Catch rare error fetching platter info

  • Allow benchmarking of SSD pools

  • Allow benchmarking of USB devices

  • Allow editing of USB devices

  • Correct scaling of left side axis of SSD benchmarks

Version 3 is taking awhile due to life stuff so I added into the version 2 branch the ability to benchmark SSD pools and USB devices.

On fresh installs or reset, it'll try to identify images for any USB drives. You can now edit the image on existing USB devices.

When benchmarking pools, select the first drive in the pool to see the benchmark button. If you click the "Benchmark" button on the home page, you can set the checkbox for the first drive in a pool but not for any other drives in the pool.

Benchmark of three Samsung 990 EVO nvme's on the motherboard in a ZFS ZRAID1 pool with the default 4 GB test file size

image.png

With ZFS pools, try a larger test file to see if it steadies out the benchmark.

image.png

Edited by jbartlett

  • jbartlett changed the title to DiskSpeed, hdd/ssd benchmarking (unRAID 6+), version 2.10.10
  • 2 weeks later...
  • Replies 1.1k
  • Views 388.9k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • jbartlett
    jbartlett

    When I tested this utility against my production server, I noticed that I had a drive going wonky on me. I couldn't even test it at first because it kept tripping the SpeedGap detection in which the m

  • jbartlett
    jbartlett

    I'm taking this application out of BETA status. Version 2.0 has been released.   Release 2.0 Added progress bars to the drive benchmarking Rewrote the Controller Benchmark to be

  • Right Proper SSD benchmarking has been added. To perform a benchmark, a configurable number of test files of a given size (defaults to 10 2GB files) are written to the drive and then read back. The ov

Posted Images

I just installed this docker, but when I click on Benchmark Drives or if I try to benchmark a single drive I’m receiving the error below. I tried removing the docker, the data folder and reinstalling, but that didn’t resolve the issue. I forced the docker to use 2.10.9 and I am able to benchmark the drives now, so this looks like an issue with 2.10.10.

Lucee 6.1.1.75-SNAPSHOT Error (expression)
Message	key [ISSSD] doesn't exist
Stacktrace	The Error Occurred in
/var/www/Benchmark.cfm: line 106
104:       <CFSET PortNo=Ref.DriveID[DriveID].PortNo>
105:       <!--- Check to see if the drive is the first in the pool (no number at end of unraid slot src), and leave in if so --->
106:       <CFIF HW[Key].Ports[PortNo].IsSSD EQ 1 AND IsNumeric(Right(HW[Key].Ports[PortNo].UnraidSlotSrc,1))>
107:          <CFSET PoolSSDChildren=ListAppend(PoolSSDChildren,DriveID)>
108:       </CFIF>

Java Stacktrace	lucee.runtime.exp.ExpressionException: key [ISSSD] doesn't exist
  at lucee.runtime.type.util.StructSupport.invalidKey(StructSupport.java:70)
  at lucee.runtime.type.StructImpl.get(StructImpl.java:179)
  at lucee.runtime.util.VariableUtilImpl.get(VariableUtilImpl.java:279)
  at lucee.runtime.PageContextImpl.us(PageContextImpl.java:1253)
  at benchmark_cfm$cf.call(/Benchmark.cfm:106)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1046)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:940)
  at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:63)
  at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:42)
  at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2725)
  at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2712)
  at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2683)
  at lucee.runtime.engine.Request.exe(Request.java:45)
  at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1160)
  at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1117)
  at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)
  at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:42)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
  at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:761)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)
  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:936)
  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
  at java.base/java.lang.Thread.run(Unknown Source)

Edited by bisk

12 hours ago, bisk said:

I just installed this docker, but when I click on Benchmark Drives or if I try to benchmark a single drive I’m receiving the error below. I tried removing the docker, the data folder and reinstalling, but that didn’t resolve the issue. I forced the docker to use 2.10.9 and I am able to benchmark the drives now, so this looks like an issue with 2.10.10.

I'm having the same exact issue with 2.10.10.

How did you force Docker to use 2.10.9?

1 hour ago, classified said:

I'm having the same exact issue with 2.10.10.

How did you force Docker to use 2.10.9?

In the Docker configuration, change the Repository setting from jbartlett777/diskspeed to jbartlett777/diskspeed:2.10.9

2 hours ago, bisk said:

In the Docker configuration, change the Repository setting from jbartlett777/diskspeed to jbartlett777/diskspeed:2.10.9

Got it, thank you, that worked.

  • Author
On 2/3/2026 at 7:44 PM, bisk said:

I just installed this docker, but when I click on Benchmark Drives or if I try to benchmark a single drive I’m receiving the error below. I tried removing the docker, the data folder and reinstalling, but that didn’t resolve the issue. I forced the docker to use 2.10.9 and I am able to benchmark the drives now, so this looks like an issue with 2.10.10.

First, thank you for reporting this issue. I can't fix issues I don't know about. I'm not able to duplicate with my two setups but I added code to try to ensure the IsSSD flag exists. Please remove the version off the repo to download 2.10.10.1.

Issues fixed:

  • Catch rare spin up error

  • Check for missing "IsSSD" flag during benchmarking

  • Abort benchmarks on drives that work enough to be detected but fails to read

Hi John

This app looks to be great, however I cant get it to run on my server. (

[1000:00c4] 01:00.0 Serial Attached SCSI controller: Broadcom / LSI SAS3224 PCI-Express Fusion-MPT SAS-3 (rev 01)

[6:0:0:0] disk ATA WDC WD201KFGX-68 0A83 /dev/sdc 20.0TB

[6:0:1:0] disk ATA ST18000NM000J-2T SN04 /dev/sdd 18.0TB

[6:0:2:0] disk ATA ST10000DM0004-2G DN01 /dev/sde 10.0TB

[6:0:3:0] disk ATA ST8000DM005-2EH1 DN02 /dev/sdf 8.00TB

[6:0:4:0] disk ATA ST16000NM001G-2K SN03 /dev/sdg 16.0TB

[6:0:5:0] disk ATA ST8000DM004-2CX1 0001 /dev/sdh 8.00TB

[6:0:6:0] disk ATA ST18000NM000J-2T SCA1 /dev/sdi 18.0TB

[6:0:7:0] disk ATA WDC WD201KFGX-68 0A83 /dev/sdj 20.0TB

[6:0:8:0] disk ATA M4-CT256M4SSD2 070H /dev/sdk 256GB

[6:0:9:0] disk ATA ST8000DM005-2EH1 DN04 /dev/sdl 8.00TB

I have attached the debug log file, in the hopes you can see something obvious what with my controller it does not like - it is a 16 port card also known as SAS 9305-16i


DiskSpeed - Disk Diagnostics & Reporting tool
Version: 2.10.10.1

Scanning Hardware
16:13:17 Spinning up hard drives
16:13:17 Scanning system storage
16:13:17 Scanning USB Bus
16:13:17 Scanning hard drives

DiskSpeed - Disk Diagnostics & Reporting tool

Version: 2.10.10.1

Scanning Hardware

16:13:17 Spinning up hard drives

16:13:17 Scanning system storage

16:13:17 Scanning USB Bus

16:13:17 Scanning hard drives

Lucee 6.1.1.75-SNAPSHOT Error (expression)

Message can not set Element at position [0]

Detail Index -1 out of bounds for length 2

Stacktrace The Error Occurred in

/var/www/ScanControllers.cfm: line 818

816: <CFLOOP index="i" from="1" to="#ArrayLen(HW[Key].Ports)#">

817: <CFFILE action="append" file="#PersistDir#/findports.txt" output="Moving row [#i#] to row [#HW[Key].Ports[i].PortNo#]">

818: <CFSET NewPorts[HW[Key].Ports[i].PortNo]=Duplicate(HW[Key].Ports[i])>

819: </CFLOOP>

820: <!--- Replace --->

called from /var/www/ScanControllers.cfm: line 799

797: </CFLOOP>

798: </CFIF>

799: </CFLOOP>

800:

801: <!--- Assign drives to correct port number and fill in blanks --->

_20260211_161213.tar.gz

Edited by hwextreme

  • Author
On 2/11/2026 at 12:23 PM, hwextreme said:

This app looks to be great, however I cant get it to run on my server

From what I can tell so far, it may be related to a USB device that's detected as SDB with the description of "File-Stor Gadget". Do you have a phone or Quest or other USB device connected? If so, try disconnecting and restart the Docker app.

i can add an exclusion for this like i have for an empty card reader but want to verify the cause first.

Edited by jbartlett

Hey is there a timeframe when NVME's with ZFS Filesystem will be supported? Is it planned?

  • Author
9 hours ago, ApfelBirneKreis said:

Hey is there a timeframe when NVME's with ZFS Filesystem will be supported? Is it planned?

Do you mean with benchmarking? I've had some success with kicking off a Benchmark from the main page on version 2.10.10 and then manually selecting a much larger test file size.

On 2/13/2026 at 2:11 AM, jbartlett said:

From what I can tell so far, it may be related to a USB device that's detected as SDB with the description of "File-Stor Gadget". Do you have a phone or Quest or other USB device connected? If so, try disconnecting and restart the Docker app.

i can add an exclusion for this like i have for an empty card reader but want to verify the cause first.

Ok I found out that this was my Nano KVM, It was the mountable (Virtual U device) USB drive it can emulate. I disabled that and the app is now working. Thank you.
Probably safer to leave this disabled until I need it anyways )

  • Author
23 hours ago, hwextreme said:

Ok I found out that this was my Nano KVM, It was the mountable (Virtual U device) USB drive it can emulate. I disabled that and the app is now working. Thank you.
Probably safer to leave this disabled until I need it anyways )

I just ordered one to try to duplicate the issue. Need one for my main NAS box at any rate....

  • 1 month later...

Hello. I can test all HDD on my HBA but my SSDs will not test, they all say this and the FAQ doesn't link to anything. Can anyone help please?

Unable to benchmark for the following reason

* Docker volume mount not detected

You will need to restart the DiskSpeed docker after making changes to mounted drives for changes to take effect.

For more information how the benchmarks work, view the FAQ

  • 4 weeks later...

Somehow unable to enter the mangement UI.

Scanning Hardware
23:26:13 Spinning up hard drives
23:26:21 Scanning system storage
23:26:35 Scanning USB Bus
23:26:35 Scanning hard drives

Lucee 6.1.1.75-SNAPSHOT Error (expression)

Message

can not set Element at position [0]

Detail

Index -1 out of bounds for length 1

Stacktrace

The Error Occurred in
/var/www/ScanControllers.cfm: line 818

816:       <CFLOOP index="i" from="1" to="#ArrayLen(HW[Key].Ports)#">
817:          <CFFILE action="append" file="#PersistDir#/findports.txt" output="Moving row [#i#] to row [#HW[Key].Ports[i].PortNo#]">
818:          <CFSET NewPorts[HW[Key].Ports[i].PortNo]=Duplicate(HW[Key].Ports[i])>
819:       </CFLOOP>
820:       <!--- Replace --->

called from /var/www/ScanControllers.cfm: line 799

797:       </CFLOOP>
798:    </CFIF>
799: </CFLOOP>
800:
801: <!--- Assign drives to correct port number and fill in blanks --->

Java Stacktrace

lucee.runtime.exp.ExpressionException: can not set Element at position [0]
  at lucee.runtime.type.wrap.ListAsArray.setE(ListAsArray.java:268)
  at lucee.runtime.type.wrap.ListAsArray.set(ListAsArray.java:413)
  at lucee.runtime.type.wrap.ListAsArray.set(ListAsArray.java:418)
  at lucee.runtime.type.util.ArraySupport.set(ArraySupport.java:312)
  at lucee.runtime.util.VariableUtilImpl.set(VariableUtilImpl.java:433)
  at lucee.runtime.PageContextImpl.set(PageContextImpl.java:1724)
  at lucee.runtime.PageContextImpl.us(PageContextImpl.java:1291)
  at scancontrollers_cfm$cf.call_000077(/ScanControllers.cfm:818)
  at scancontrollers_cfm$cf.call(/ScanControllers.cfm:799)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1046)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:940)
  at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:63)
  at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:42)
  at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2725)
  at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2712)
  at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2683)
  at lucee.runtime.engine.Request.exe(Request.java:45)
  at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1160)
  at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1117)
  at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)
  at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:42)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
  at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:761)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)
  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:936)
  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
  at java.base/java.lang.Thread.run(Unknown Source)
 

Timestamp

4/15/26 11:26:36 PM PDT

  • 1 month later...
  • Author
On 4/15/2026 at 11:27 PM, StylishQuoter said:

Somehow unable to enter the mangement UI.

Scanning Hardware
23:26:13 Spinning up hard drives
23:26:21 Scanning system storage
23:26:35 Scanning USB Bus
23:26:35 Scanning hard drives

Lucee 6.1.1.75-SNAPSHOT Error (expression)

Message

can not set Element at position [0]

Detail

Index -1 out of bounds for length 1

Stacktrace

The Error Occurred in
/var/www/ScanControllers.cfm: line 818

called from /var/www/ScanControllers.cfm: line 799

Java Stacktrace

lucee.runtime.exp.ExpressionException: can not set Element at position [0]
  at lucee.runtime.type.wrap.ListAsArray.setE(ListAsArray.java:268)
  at lucee.runtime.type.wrap.ListAsArray.set(ListAsArray.java:413)
  at lucee.runtime.type.wrap.ListAsArray.set(ListAsArray.java:418)
  at lucee.runtime.type.util.ArraySupport.set(ArraySupport.java:312)
  at lucee.runtime.util.VariableUtilImpl.set(VariableUtilImpl.java:433)
  at lucee.runtime.PageContextImpl.set(PageContextImpl.java:1724)
  at lucee.runtime.PageContextImpl.us(PageContextImpl.java:1291)
  at scancontrollers_cfm$cf.call_000077(/ScanControllers.cfm:818)
  at scancontrollers_cfm$cf.call(/ScanControllers.cfm:799)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1046)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:940)
  at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:63)
  at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:42)
  at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2725)
  at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2712)
  at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2683)
  at lucee.runtime.engine.Request.exe(Request.java:45)
  at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1160)
  at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1117)
  at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)
  at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:42)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
  at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:761)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)
  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:936)
  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
  at java.base/java.lang.Thread.run(Unknown Source)
 

Timestamp

4/15/26 11:26:36 PM PDT

This is really odd. Historically, if the app server counts from one to zero, it just skips the loop entirely. I'll take a look....

Hello,

I'm getting the same issue. I'm on Unraid 7.3.1.

When I open the web UI I get the following error:


15:34:48 Scanning hard drives

Lucee 6.1.1.75-SNAPSHOT Error (expression)

Message

can not set Element at position [0]

Detail

Index -1 out of bounds for length 1

Stacktrace

The Error Occurred in
/var/www/ScanControllers.cfm: line 818

816:       <CFLOOP index="i" from="1" to="#ArrayLen(HW[Key].Ports)#">
817:          <CFFILE action="append" file="#PersistDir#/findports.txt" output="Moving row [#i#] to row [#HW[Key].Ports[i].PortNo#]">
818:          <CFSET NewPorts[HW[Key].Ports[i].PortNo]=Duplicate(HW[Key].Ports[i])>
819:       </CFLOOP>
820:       <!--- Replace --->

called from /var/www/ScanControllers.cfm: line 799

797:       </CFLOOP>
798:    </CFIF>
799: </CFLOOP>
800:
801: <!--- Assign drives to correct port number and fill in blanks --->

Java Stacktrace

lucee.runtime.exp.ExpressionException: can not set Element at position [0]
  at lucee.runtime.type.wrap.ListAsArray.setE(ListAsArray.java:268)
  at lucee.runtime.type.wrap.ListAsArray.set(ListAsArray.java:413)
  at lucee.runtime.type.wrap.ListAsArray.set(ListAsArray.java:418)
  at lucee.runtime.type.util.ArraySupport.set(ArraySupport.java:312)
  at lucee.runtime.util.VariableUtilImpl.set(VariableUtilImpl.java:433)
  at lucee.runtime.PageContextImpl.set(PageContextImpl.java:1724)
  at lucee.runtime.PageContextImpl.us(PageContextImpl.java:1291)
  at scancontrollers_cfm$cf.call_000077(/ScanControllers.cfm:818)
  at scancontrollers_cfm$cf.call(/ScanControllers.cfm:799)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1046)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:940)
  at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:63)
  at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:42)
  at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2725)
  at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2712)
  at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2683)
  at lucee.runtime.engine.Request.exe(Request.java:45)
  at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1160)
  at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1117)
  at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)
  at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:42)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
  at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:761)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)
  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:936)
  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
  at java.base/java.lang.Thread.run(Unknown Source)

  • 2 weeks later...

I get a similar error if I have a CH340 USB to Serial device plugged in, specifically this LCUS-1 USB Relay Module. The only way I can get DiskSpeed to run is with the device physically disconnected.

Error log

DiskSpeed - Disk Diagnostics & Reporting tool
Version: 2.10.10.1

Scanning Hardware
14:50:46 Spinning up hard drives
14:50:53 Scanning system storage
14:50:54 Scanning USB Bus
14:50:54 Scanning hard drives

Lucee 6.1.1.75-SNAPSHOT Error (expression)

Message

can not set Element at position [0]

Detail

Index -1 out of bounds for length 1

Stacktrace

The Error Occurred in
/var/www/ScanControllers.cfm: line 818

816:       <CFLOOP index="i" from="1" to="#ArrayLen(HW[Key].Ports)#">
817:          <CFFILE action="append" file="#PersistDir#/findports.txt" output="Moving row [#i#] to row [#HW[Key].Ports[i].PortNo#]">
818:          <CFSET NewPorts[HW[Key].Ports[i].PortNo]=Duplicate(HW[Key].Ports[i])>
819:       </CFLOOP>
820:       <!--- Replace --->

called from /var/www/ScanControllers.cfm: line 799

797:       </CFLOOP>
798:    </CFIF>
799: </CFLOOP>
800:
801: <!--- Assign drives to correct port number and fill in blanks --->

Java Stacktrace

lucee.runtime.exp.ExpressionException: can not set Element at position [0]
  at lucee.runtime.type.wrap.ListAsArray.setE(ListAsArray.java:268)
  at lucee.runtime.type.wrap.ListAsArray.set(ListAsArray.java:413)
  at lucee.runtime.type.wrap.ListAsArray.set(ListAsArray.java:418)
  at lucee.runtime.type.util.ArraySupport.set(ArraySupport.java:312)
  at lucee.runtime.util.VariableUtilImpl.set(VariableUtilImpl.java:433)
  at lucee.runtime.PageContextImpl.set(PageContextImpl.java:1724)
  at lucee.runtime.PageContextImpl.us(PageContextImpl.java:1291)
  at scancontrollers_cfm$cf.call_000077(/ScanControllers.cfm:818)
  at scancontrollers_cfm$cf.call(/ScanControllers.cfm:799)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1046)
  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:940)
  at lucee.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:63)
  at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:42)
  at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2725)
  at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2712)
  at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2683)
  at lucee.runtime.engine.Request.exe(Request.java:45)
  at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1160)
  at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1117)
  at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)
  at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:42)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
  at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:761)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)
  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:936)
  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
  at java.base/java.lang.Thread.run(Unknown Source)
 

Timestamp

6/10/26 2:50:58 PM MDT

  • Author
On 6/10/2026 at 1:56 PM, rerror said:

I get a similar error if I have a CH340 USB to Serial device plugged in, specifically this LCUS-1 USB Relay Module. The only way I can get DiskSpeed to run is with the device physically disconnected.

I've ordered one of these, should be here a couple days. Hopefully I'll be able to duplicate.

  • Author

Attention:

If you are getting errors scanning hardware or submitting benchmarks, please update the DiskSpeed docker app, it should reflect version 2.10.10.3.

I updated the URL for the public site to strangejourney.net, removing the www prefix. I moved the domain to a new server and currently the www prefix is returning another one of my domains and as of this posting, it was quicker to update the Docker app than to figure out why the domains are serving incorrectly even though the config looks correct.

Database Errors

Moving from a Windows server to a Unix server and switching from MySQL to MariaDB also introduced forced lower case table names. I believe I caught them all but please let me know if you get any table not found errors.

Edited by jbartlett

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.