EvEmu-Project / evemu_Crucible

Emulator for EvE Online's Crucible expansion
https://evemu.dev
174 stars 68 forks source link

Boarding spawn then re-boarding prior ship = STACKTRACE, no ammo and ServerError 35221 #200

Open matthew1smith opened 2 years ago

matthew1smith commented 2 years ago

Describe the bug Spawned a Bantam. Was already flying a Merlin (spawned in prior play session, on prior server load yesterday - was since restarted) with Modal Light Electron Particle Accelerator I x2, each with full Antimatter Charge S loaded. Boarded the spawned Bantam. Tried to re-board the Merlin too early, which prompted 'other half still coming... wait 3 seconds' message. Waited, then boarded and received error shown, which wiped ammo from both weapons. Also then received Destiny error regarding movement.

To Reproduce Steps to reproduce the behavior:

  1. Leave station in a ship equipped with 2x Modal Light Electron Particle Accelerator I and full Antimatter Charge S in each.
  2. Fly some distance then stop.
  3. Spawn a ship (Bantam, in my case) using /spawn
  4. Eject from ship and enter the spawned ship.
  5. Try to board the other ship early, prompting the 'wait' message.
  6. Wait, then try the board ship action again. You will board but receive the error.

Expected behavior Board the ship I was previously flying, with equipped weapons and ammo count intact.

Screenshots error

System Details (please complete the following information):

Additional context Error message:

STACKTRACE #15 logged at 03/23/2022 18:22:12 Godma:UpdateItem - QUANTITY MISSING /common/lib/bluepy.py(86) CallWrapper /../carbon/common/script/net/machonet.py(4543) TransportReader /common/lib/bluepy.py(396) Wrapper /../carbon/common/script/net/machonet.py(4714) HandleMessage /../carbon/common/script/net/machonettransport.py(599) SessionNotification /../carbon/common/script/net/sessionchangegpcs.py(46) NotifyUp /../carbon/common/script/sys/sessions.py(1183) ApplyRemoteAttributeChanges /../carbon/common/script/sys/servicemanager.py(677) ChainEvent /../carbon/common/script/sys/servicemanager.py(700) ChainEventWithoutTheStars /client/script/environment/invcache.py(142) ProcessSessionChange /client/script/environment/godma.py(516) ProcessSessionChange /client/script/environment/godma.py(1247) ProcessSessionChange /client/script/environment/godma.py(2661) Prime /client/script/environment/godma.py(1874) UpdateItem itemFlag = 28 itemCategoryID = 8 item = None itemLocationID = 140000152 self = <godma.StateManager instance at 0x37ACA030> locationItem = <DBRow object [140000152L, 603, 90000002, 30004971, 0, -1, 25, 6, 'InSpace: Bave Dautista(90000002)', 1, 1]> l = <DBRow object [(140000152, 28, 222), 222, 90000002, 140000152, 28, 85, 8]> ret = None doUpdate = False typeOb = typeID: 222 groupID: 85 typeName: Antimatter Charge S ... itemGroupID = 85 defaultQty = 0.0 itemKey = (140000152, 28, 222) dontGetInfo = 0 itemTypeID = 222 infoz = <Anonymous KeyVal: {'itemID': (140000152, 28, 222), 'invItem': None, 'description': 'Antimatter Charge S', 'activeEffects': {}, 'time': 132924973324928896L, 'attributes': {128: 1, 161: 0.0024999999441206455, 162: 1.0, 612: 0.0, 613: 0.0, 422: 1, 137: 74, 779: 0.5, 114: 0, 116: 0, 117: 7, 118: 5, 120: 0.5, 4: 0.009999999776482582, 124: 16764120, 317: 0}}> isSubLocation = True

Thread Locals: session was <Session: (sid:4988717281195423510, clientID:0, changing:ApplyRemoteAttributeChanges, mutating:0, locationid:30004971, corprole:0x0, userid:3, languageID:EN, role:0x62f8000280c41000L, charid:90000002, address:172.21.0.1:42830, userType:30, sessionType:5, regionid:10000064, constellationid:20000727, warfactionid:0, corpid:1000168, shipid:140000152, solarsystemid:30004971, solarsystemid2:30004971, hqID:60014689, baseID:60014689, rolesAtAll:0x0, rolesAtHQ:0x0, rolesAtBase:0x0, rolesAtOther:0x0, genderID:1, bloodlineID:8, raceID:8, corpAccountKey:1000)> currentcall was: <MachoCallOrNotification, packet=Packet::SessionChangeNotification (Address::Node(nodeID="888444",service="None",callID="None"),Address::Client(clientID="4888444",callID="None",service="None"),72 bytes,[0L, (0, {'shipid': (140000190, 140000152)}), [-1, 888444]],{}, None)> STACKTRACE END

08:22:12 [Service] config::GetDynamicCelestials() 08:22:13 [DestinyError] Destiny::IsTurn() - Merlin(140000152): TargetPoint is null. 08:22:13 E Destiny::MoveObject(): Merlin(140000152) - move checks are not set right. Acc:False, Dec:False, Turn:False, Tic:0, Tractored:False, TractorPause:False

matthew1smith commented 2 years ago

Worth noting that the Merlin I'm flying is also what experienced the issue with loading ammo into the weapons in #197, was also a spawned ship, and during that issue the quantities of ammo did not properly update, either.

jdhirst commented 5 months ago

This is likely a state sync issue, can you let us know if .setstate does anything for this?