AnyLogic负事件超时错误(root.arrival)成因及排查咨询
AnyLogic负超时错误:触发场景、原因及排查方法
报错信息
java.lang.RuntimeException: root.arrival: Trying to schedule an event in the past. Negative timeout: -0.07519763751588471 at com.anylogic.engine.Engine.error(Unknown Source) at com.anylogic.engine.EventOriginator.d(Unknown Source) at com.anylogic.engine.EventTimeout.restartTo(Unknown Source) at com.anylogic.engine.jk$d.a(Unknown Source) at com.anylogic.engine.jk.addMovingAgent(Unknown Source) at com.anylogic.engine.g.d(Unknown Source) at com.anylogic.engine.g.d(Unknown Source) at com.anylogic.engine.g.d(Unknown Source) at com.anylogic.engine.g.d(Unknown Source) at com.anylogic.engine.be.d(Unknown Source) at com.anylogic.engine.be.moveToInTime(Unknown Source) at com.anylogic.engine.be.moveToInTime(Unknown Source) at com.anylogic.engine.be.moveTo(Unknown Source) at com.anylogic.engine.ExtAgentWithSpatialMetricsDelegate.moveTo(Unknown Source) at com.anylogic.libraries.processmodeling.MoveTo.c(Unknown Source) at com.anylogic.libraries.processmodeling.MoveTo.d(Unknown Source) at com.anylogic.libraries.processmodeling.MoveTo.a(Unknown Source) at com.anylogic.libraries.processmodeling.MoveTo.a(Unknown Source) at com.anylogic.libraries.processmodeling.MoveTo$1.onEnter(Unknown Source) at com.anylogic.libraries.processmodeling.Delay.b(Unknown Source) at com.anylogic.libraries.processmodeling.Delay.b(Unknown Source) at com.anylogic.libraries.processmodeling.Delay$9.onEnter(Unknown Source) at com.anylogic.libraries.processmodeling.InputBlock$1.b(Unknown Source) at com.anylogic.libraries.processmodeling.InPort.a(Unknown Source) at com.anylogic.libraries.processmodeling.InPort.receiveImmediately(Unknown Source) at com.anylogic.libraries.processmodeling.InputBlock$1.a(Unknown Source) at com.anylogic.libraries.processmodeling.OutPort.a(Unknown Source) at com.anylogic.libraries.processmodeling.OutPort.b(Unknown Source) at com.anylogic.libraries.processmodeling.PlainTransfer$1.a(Unknown Source) at com.anylogic.libraries.processmodeling.OutPort.a(Unknown Source) at com.anylogic.libraries.processmodeling.OutPort.b(Unknown Source) at com.anylogic.libraries.processmodeling.PlainTransfer$1.a(Unknown Source) at com.anylogic.libraries.processmodeling.OutPort.a(Unknown Source) at com.anylogic.libraries.processmodeling.OutPort.b(Unknown Source) at com.anylogic.libraries.processmodeling.OutPort.a(Unknown Source) at com.anylogic.libraries.processmodeling.OutputBlock.a(Unknown Source) at com.anylogic.libraries.processmodeling.OutputBlock.a(Unknown Source) at com.anylogic.libraries.processmodeling.OutputBlock$2.a(Unknown Source) at com.anylogic.libraries.processmodeling.OutputBlock$2.action(Unknown Source) at com.anylogic.libraries.processmodeling.AsynchronousExecutor_xjal$a.execute(Unknown Source) at com.anylogic.engine.LibraryEventHandler$l.execute(Unknown Source) at com.anylogic.engine.Engine.d(Unknown Source) at com.anylogic.engine.Engine.runFast(Unknown Source) at com.anylogic.engine.Engine.runFast(Unknown Source)
问题背景
该错误提示事件被调度到过去,负超时值为-0.07519763751588471。此前在其他模型中也遇到过该错误,但不清楚其触发原因与机制。root.arrival并非模型中的元素,推测是AnyLogic引擎内部内容。堆栈跟踪未提供模型内的错误位置信息,无法定位根源。
常见触发场景与原因
- 移动逻辑冲突:从堆栈看,错误源于
MoveTo模块的移动操作。当Agent的移动目标距离过近,或设置的移动速度过大,导致计算出的移动时间为负数(比如要求Agent在当前时间点之前到达目标)。 - 异步事件调度错误:模型中使用异步执行器(
AsynchronousExecutor)时,若事件触发时间被错误设置为当前时间之前,会引发该错误。 - 时间回退操作:手动调整模型时间回退,或使用
reset()、restart()等方法时,未正确清理已调度的事件,导致残留事件的触发时间早于当前模型时间。 - 自定义代码中的时间计算错误:在自定义函数或事件中,手动计算事件调度时间时出现逻辑错误,比如用当前时间减去一个大于当前时间的值,得到负数超时。
- 模块参数配置不合理:比如
Delay模块的延迟时间设置为负数,或Transfer模块的传输时间计算异常,间接导致后续事件调度到过去。
排查方法
- 定位移动相关模块:重点检查模型中所有
MoveTo、Transport、Walk等涉及Agent移动的模块,查看目标点距离、移动速度参数是否合理。可以添加临时代码输出Agent当前位置与目标位置的距离、计算出的移动时间,确认是否出现负数。 - 检查异步执行逻辑:找到使用
AsynchronousExecutor的位置,验证事件触发时间的计算逻辑,确保调度时间≥当前模型时间(time())。 - 禁用时间回退功能:如果模型中使用了时间回退,先禁用该功能,测试是否还会出现错误。若消失,则需要在回退时清理所有待调度的事件。
- 排查自定义时间计算代码:搜索模型中所有调用
scheduleEvent()、setTimeout()等方法的自定义代码,检查时间参数的计算是否正确,避免出现time() - X导致的负数结果。 - 启用AnyLogic调试工具:使用模型的调试模式,在错误发生前设置断点,逐步跟踪事件调度过程;或启用引擎的详细日志(在模型属性中设置日志级别为DEBUG),查看更多内部事件调度信息。
- 简化模型测试:逐步移除模型中的模块或逻辑,直到错误消失,以此定位引发问题的具体部分。
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

