server update crashes when lucee can't connect to internet or lucee webservices down

Description

  • turn off wifi / internet

  • on localhost, restart service, open the lucee server admin

  • open services update in admin

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Lucee 5.3.3.41-SNAPSHOT Error (expression) Message key [OTHERVERSIONS] doesn't exist (existing keys:PROVIDER,message,CODE,type) Stacktrace The Error Occurred in /admin/services.update.cfm: line 109 called from /admin/web.cfm: line 448 called from /admin/server.cfm: line 2 Java Stacktrace lucee.runtime.exp.ExpressionException: key [OTHERVERSIONS] doesn't exist (existing keys:PROVIDER,message,CODE,type) at lucee.commons.collection.AbstractMapPro.invalidKey(AbstractMapPro.java:754) at lucee.commons.collection.concurrent.ConcurrentHashMapPro$Segment.getE(ConcurrentHashMapPro.java:358) at lucee.commons.collection.concurrent.ConcurrentHashMapPro.g(ConcurrentHashMapPro.java:824) at lucee.runtime.type.StructImpl.get(StructImpl.java:128) at lucee.runtime.type.util.StructSupport.get(StructSupport.java:242) at lucee.runtime.util.VariableUtilImpl.get(VariableUtilImpl.java:267) at lucee.runtime.PageContextImpl.get(PageContextImpl.java:1499) at services_update_cfm414$cf.call(/admin/services.update.cfm:109) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:942) at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:834) at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:816) at web_cfm$cf.call(/admin/web.cfm:448) Lucee 5.3.1.102 Error (expression) Message key [OTHERVERSIONS] doesn't exist Stacktrace The Error Occurred in /admin/services.update.cfm: line 107 called from /admin/web.cfm: line 457 called from /admin/server.cfm: line 2 Java Stacktrace lucee.runtime.exp.ExpressionException: key [OTHERVERSIONS] doesn't exist at lucee.runtime.type.util.StructSupport.invalidKey(StructSupport.java:67) at lucee.runtime.type.StructImpl.get(StructImpl.java:129) at lucee.runtime.type.util.StructSupport.get(StructSupport.java:242) at lucee.runtime.util.VariableUtilImpl.get(VariableUtilImpl.java:267)

then if you enable wifi, the bad result seems to be cached and it still crashes if you reload

line 92, a check is made to see if updateData.otherVersions exists
https://github.com/lucee/Lucee/blob/5.3/core/src/main/cfml/context/admin/services.update.cfm#L92

then on line 109 it just assumes it's defined
https://github.com/lucee/Lucee/blob/5.3/core/src/main/cfml/context/admin/services.update.cfm#L109

The update logic needs to be made more robust when the lucee webservices are down or unreachable

https://dev.lucee.org/t/update-page-error-key-otherversions-doesnt-exist/5563/3

Environment

None

Status

Assignee

Michael Offner

Reporter

Zac Spitzer

Labels

Sprint

None

Fix versions

Affects versions

5.3.3.41

Priority

Critical
Configure