Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VirtualMachine throws IndexOutOfRangeException after reloading plugin #764

Open
jakkn opened this issue May 1, 2024 · 0 comments
Open

Comments

@jakkn
Copy link
Contributor

jakkn commented May 1, 2024

This happens after reloading a service that subscribes to an event that is also subscribed to in nss. When the event fires after the reload, the process crashes.

The exception is thrown from

int spBefore = PushScriptContext(objectId, scriptEventId);

For detailed repro steps and code, see https://github.com/jakkn/NWN.ProcessEventInfiniteLoopRepro

nwserver-1  | F [2024/05/01 19:04:48.676] [Anvil.Services.UnhandledExceptionLogger] Unhandled Exception.
nwserver-1  | System.IndexOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the array.
nwserver-1  |    at NWN.Native.API.NativeArray`1.set_Item(Int32 index, T value)
nwserver-1  |    at Anvil.API.VirtualMachine.PushScriptContext(UInt32 oid, Int32 scriptEventId) in /home/runner/work/Anvil/Anvil/NWN.Anvil/src/main/API/Utils/VirtualMachine.cs:line 208
nwserver-1  |    at Anvil.API.VirtualMachine.ExecuteInScriptContext(Action action, UInt32 objectId, Int32 scriptEventId) in /home/runner/work/Anvil/Anvil/NWN.Anvil/src/main/API/Utils/VirtualMachine.cs:line 105
nwserver-1  |    at Anvil.API.Events.HookEventFactory.ProcessEvent[TEvent](EventCallbackType eventType, TEvent eventData, Boolean executeInScriptContext) in /home/runner/work/Anvil/Anvil/NWN.Anvil/src/main/API/Events/Native/HookEventFactory.cs:line 54
nwserver-1  |    at Anvil.API.Events.OnStoreRequestSell.Factory.OnRequestSell(Void* pCreature, UInt32 oidItemToSell, UInt32 oidStore) in /home/runner/work/Anvil/Anvil/NWN.Anvil/src/main/API/Events/Native/StoreEvents/OnStoreRequestSell.cs:line 59
nwserver-1  | Unhandled exception. System.IndexOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the array.
nwserver-1  |    at NWN.Native.API.NativeArray`1.set_Item(Int32 index, T value)
nwserver-1  |    at Anvil.API.VirtualMachine.PushScriptContext(UInt32 oid, Int32 scriptEventId) in /home/runner/work/Anvil/Anvil/NWN.Anvil/src/main/API/Utils/VirtualMachine.cs:line 208
nwserver-1  |    at Anvil.API.VirtualMachine.ExecuteInScriptContext(Action action, UInt32 objectId, Int32 scriptEventId) in /home/runner/work/Anvil/Anvil/NWN.Anvil/src/main/API/Utils/VirtualMachine.cs:line 105
nwserver-1  |    at Anvil.API.Events.HookEventFactory.ProcessEvent[TEvent](EventCallbackType eventType, TEvent eventData, Boolean executeInScriptContext) in /home/runner/work/Anvil/Anvil/NWN.Anvil/src/main/API/Events/Native/HookEventFactory.cs:line 54
nwserver-1  |    at Anvil.API.Events.OnStoreRequestSell.Factory.OnRequestSell(Void* pCreature, UInt32 oidItemToSell, UInt32 oidStore) in /home/runner/work/Anvil/Anvil/NWN.Anvil/src/main/API/Events/Native/StoreEvents/OnStoreRequestSell.cs:line 59
nwserver-1  |  NWNX Signal Handler:
nwserver-1  | ==============================================================
nwserver-1  |  NWNX 8193.36-12 (41dd0c2) has crashed. Fatal error: Program aborted (6).
nwserver-1  |  Please file a bug at https://github.com/nwnxee/unified/issues
nwserver-1  | ==============================================================
nwserver-1  |
nwserver-1  |   Backtrace:
nwserver-1  |     /nwn/nwnx/NWNX_Core.so(_ZN7NWNXLib8Platform13GetStackTraceB5cxx11Eh+0x3b) [0x7fae1a7574fb]
nwserver-1  |     /nwn/nwnx/NWNX_Core.so(nwnx_signal_handler+0xac) [0x7fae1a704abc]
nwserver-1  |     /lib/x86_64-linux-gnu/libpthread.so.0(+0x14420) [0x7fae1a6b7420]
nwserver-1  |     /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb) [0x7fae1a1a000b]
nwserver-1  |     /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b) [0x7fae1a17f859]
nwserver-1  |     /usr/share/dotnet/shared/Microsoft.NETCore.App/7.0.18/libcoreclr.so(+0x64d3c2) [0x7fae1164d3c2]
nwserver-1  |     /usr/share/dotnet/shared/Microsoft.NETCore.App/7.0.18/libcoreclr.so(+0x64d2e2) [0x7fae1164d2e2]
nwserver-1  |     /usr/share/dotnet/shared/Microsoft.NETCore.App/7.0.18/libcoreclr.so(+0x40f735) [0x7fae1140f735]
nwserver-1  |     /usr/share/dotnet/shared/Microsoft.NETCore.App/7.0.18/libcoreclr.so(+0x40f816) [0x7fae1140f816]
nwserver-1  |     /usr/share/dotnet/shared/Microsoft.NETCore.App/7.0.18/libcoreclr.so(+0x360f69) [0x7fae11360f69]
nwserver-1  |     [0x7fad970b2525]
nwserver-1  |  NWNX Signal Handler:
nwserver-1  | ==============================================================
nwserver-1  |  NWNX 8193.36-12 (41dd0c2) has crashed. Fatal error: Segmentation fault (11).
nwserver-1  |  Please file a bug at https://github.com/nwnxee/unified/issues
nwserver-1  | ==============================================================
nwserver-1  |
nwserver-1  |   Backtrace:
nwserver-1  |     /nwn/nwnx/NWNX_Core.so(_ZN7NWNXLib8Platform13GetStackTraceB5cxx11Eh+0x3b) [0x7fae1a7574fb]
nwserver-1  |     /nwn/nwnx/NWNX_Core.so(nwnx_signal_handler+0xac) [0x7fae1a704abc]
nwserver-1  |     /lib/x86_64-linux-gnu/libpthread.so.0(+0x14420) [0x7fae1a6b7420]
nwserver-1  |     /lib/x86_64-linux-gnu/libc.so.6(abort+0x213) [0x7fae1a17f941]
nwserver-1  |     /nwn/nwnx/NWNX_Core.so(nwnx_signal_handler+0x185) [0x7fae1a704b95]
nwserver-1  |     /lib/x86_64-linux-gnu/libpthread.so.0(+0x14420) [0x7fae1a6b7420]
nwserver-1  |     /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb) [0x7fae1a1a000b]
nwserver-1  |     /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b) [0x7fae1a17f859]
nwserver-1  |     /usr/share/dotnet/shared/Microsoft.NETCore.App/7.0.18/libcoreclr.so(+0x64d3c2) [0x7fae1164d3c2]
nwserver-1  |     /usr/share/dotnet/shared/Microsoft.NETCore.App/7.0.18/libcoreclr.so(+0x64d2e2) [0x7fae1164d2e2]
nwserver-1  |     /usr/share/dotnet/shared/Microsoft.NETCore.App/7.0.18/libcoreclr.so(+0x40f735) [0x7fae1140f735]
nwserver-1  |     /usr/share/dotnet/shared/Microsoft.NETCore.App/7.0.18/libcoreclr.so(+0x40f816) [0x7fae1140f816]
nwserver-1  |     /usr/share/dotnet/shared/Microsoft.NETCore.App/7.0.18/libcoreclr.so(+0x360f69) [0x7fae11360f69]
nwserver-1  |     [0x7fad970b2525]
nwserver-1 exited with code 127
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant