EvEmu-Project / evemu_Crucible

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

attacking asteroid causes server crash #139

Open wibiti opened 2 years ago

wibiti commented 2 years ago

Describe the bug The server crashes when a player shoots an asteroid in an asteroid belt with a turret (not a mining laser)

To Reproduce

  1. Go to an asteroid belt.
  2. Target lock one of the asteroids
  3. Fire a weapon, such as one of those that come with a noob ship.
  4. Server reports a segmentation fault.

Expected behavior The server should continue to function. The weapon should hit (or miss) the asteroid and do zero damage.

Screenshots If applicable, add screenshots to help explain your problem.

System Details (please complete the following information):

Additional context

#0  0x0000000000a0fc29 in Ga::GaVec3::distance (this=0xa84b060, oth=...) at /src/dep/gangsta/GaTypes.h:160
No locals.
#1  0x0000000000e05021 in TurretFormulas::GetToHit (this=0x9c54015, shipRef=..., pMod=0x9c53f80, pTarget=0xa9a0c70) at /src/src/eve-server/ship/modules/TurretFormulas.cpp:32
        falloff = 4000
        range = 862
        distance = 0
        vector = {<Ga::GaVec3> = {x = 6.9531454708161997e-310, y = 0, z = 9.8813129168249309e-324}, <No data fields>}
        transversalV = 1.27773885e-32
        angularVel = 4.59163468e-41
        targSig = 1.40500596e-37
        sigRes = 0
        trackSpeed = 1.47983676e-38
        a = 4.59163468e-41
        b = 0
        modifier = 1.47985414e-38
        c = 1.40500238e-37
        d = 4.59163468e-41
        e = 1.40502569e-37
        x = 4.59163468e-41
        y = 1.40500238e-37
        ChanceToHit = 0
        rNum = 3.52631265e-38
#2  0x0000000000e07f4c in TurretModule::ApplyDamage (this=0x9c53f80) at /src/src/eve-server/ship/modules/TurretModule.cpp:77
        d = {srcSE = 0x7fff023f3db0, effectID = 14038, weaponRef = {_vptr.RefPtr = 0x7fff023f3dd0, mPtr = 0x7fff023f3dd8}, chargeRef = {_vptr.RefPtr = 0xa9ae9c0, mPtr = 0xa9ae9c0},
          kinetic = 1.40502211e-37, thermal = 4.59163468e-41, em = 1.2751816e-43, explosive = 0, modifier = 1.49175405e-32}
#3  0x0000000000dda2e3 in ActiveModule::DoCycle (this=0x9c53f80) at /src/src/eve-server/ship/modules/ActiveModule.cpp:518
        cycleTime = {fVal = 6.9531454708582941e-310, iVal = 175351920, mType = (unknown: 0x23f3f50)}
#4  0x0000000000dd99ee in ActiveModule::Activate (this=0x9c53f80, effectID=10, targetID=450000006, repeat=1000) at /src/src/eve-server/ship/modules/ActiveModule.cpp:399
        pShip = 0xa858870
        modules = std::vector of length -1, capacity 1 = {0xa853200, 0x7fff023f4090, 0xa10ccb <InventoryItem::GetAttribute(unsigned short) const+51>, 0x7fff023f4090, 0x200a1225a, 0xa8523e0,
          0x7fff023f40b0, 0x7fff023f40d0, 0xdc583c <InventoryItem::IsOnline()+48>, 0x1c00000001bf1da0, 0xa8523e0, 0x0, 0x1, 0xc283ea0800000001, 0xa858870, 0x7fff023f40f0, 0xa84dce0, 0x1e09c00,
          0x3e8, 0x7fff023f4250, 0xdf3e7f <ModuleManager::Activate(int, unsigned short, int, int)+1791>, 0x7fff023f4130, 0x1ad27486000003e8, 0x8583b1d023f000a, 0xa84dce0, 0x7fff023f4140, 0xbfda9a
     <__gnu_cxx::__aligned_membuf<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned short> >::_M_ptr() const+24>, 0x7fff023f4160, 0xa73a910,
          0x7fff023f4160,
          0x7fecc011cc4c <std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const+44>, 0xa73a910, 0x1e09cc8, 0x7fff023f4180,
          0xa11e70 <std::operator< <char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+35>, 0xa73a910, 0x7fff023f42a0, 0x7fff023f41b0,
          0xa14f91 <std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const+39>, 0x7fff023f41b0, 0xa73a910, 0x7fff023f42a0, 0xa73a910, 0x7fff023f41d0,
          0xbfda9a <__gnu_cxx::__aligned_membuf<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned short> >::_M_ptr() const+24>,
          0x7fff023f41f0, 0xa73a910, 0x7fff023f41f0,
          0xbfb418 <std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned short> >::_M_valptr() const+28>, 0x7fff023f4200,
          0xa73a8f0, 0x7fff023f4210,
          0xbf9d3f <std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, unsigned short> >::operator->() const+27>,
          0x7fff023f4240, 0x7fff023f4230, 0x7fff023f4250, 0xbf689e <FxDataMgr::GetEffectID(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)+140>, 0x7fff023f42a0,
          0x1e09c00, 0x9c53f80, 0xa75fb90, 0xa84dce0, 0x1e09c00, 0x7fff023f42d0,
          0xdb83d7 <ShipItem::Activate(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int)+293>, 0x3e8023f4280, 0x7fff023f4350, 0x8583b1d1ad27486,
          0xa84b020, 0x10a9688 <vtable for RefPtr<InventoryItem>+16>, 0xa9a0d50, 0x7fff023f42b0, 0x7fff023f4324, 0x7fff023f42b0, 0xc, 0x7441746567726174, 0x6b636174, 0x1ad27486, 0xa84b020,
          0x7fff023f43a0, 0xbe1c68 <DogmaIMBound::Handle_Activate(PyCallArgs&)+980>, 0xa864520, 0x7fff023f44f0, 0xa863f70, 0x7fff023f4430, 0x8583b1d, 0x7fff023f4318, 0xc, 0x7441746567726174,
--Type <RET> for more, q to quit, c to continue without paging--c
          0x7f006b636174, 0x3e81ad27486, 0x7fff023f45c8, 0xa864520, 0x10a9668 <vtable for RefPtr<ShipItem>+16>, 0xa84b020, 0x7fff023f4360, 0xc, 0x7441746567726174, 0x6b636174, 0x7fff023f4430, 0x29686c0, 0x7fff023f43a0, 0x1bf17c0, 0x1bb7040, 0x0, 0x7fff023f4400, 0xbe8ee5 <PyCallableDispatcher<DogmaIMBound>::Dispatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, PyCallArgs&)+289>, 0x7fff023f44f0, 0x7fff023f45c8, 0xa863fd0, 0x7fff023f4430, 0xbe1894 <DogmaIMBound::Handle_Activate(PyCallArgs&)>, 0x0, 0xa864500, 0xa863fe0, 0x1bf17c0, 0x1bb7040, 0x7fff023f4460, 0xa47ab7 <PyCallable::Call(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, PyCallArgs&)+71>, 0x7fff023f44f0, 0x7fff023f45c8, 0xa863f70, 0x7fff023f44e0, 0x7fff023f4450, 0xa1e1f4 <PyDict::end() const+28>, 0x7fff023f4488, 0x7fff023f4480, 0x1bf17c0, 0x1bb7040, 0x7fff023f44a0, 0xa46477 <PyBoundObject::Call(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, PyCallArgs&)+139>, 0x7fff023f44f0, 0x7fff023f45c8, 0xa863f70, 0x7fff023f44e0, 0xa864d00, 0x1bf17c0, 0x7fff023f4580, 0xa0d1ca <Client::Handle_CallReq(PyPacket*, PyCallStream&)+804>, 0x0, 0x7fff023f45a0, 0xa9aeea0, 0x29686c0, 0x7fff023f44f0, 0xd8e7c00000068, 0x3, 0xa9a0040, 0x29686c0, 0x0, 0x0, 0x0, 0xa9af220, 0xa9af220, 0xa9af220, 0x1, 0x3434343838383d00, 0x7f003430313a, 0x7fff023f4550, 0x0, 0x6574617669746300, 0x7fff023f4500, 0xa992c90, 0xa863f70, 0x1bf17c0, 0x1bb7040, 0x7fff023f4660, 0xf1eca1 <EVEPacketDispatcher::DispatchPacket(PyPacket*)+763>, 0xa9aeea0, 0x29686e0, 0x7fff00000000, 0x7fff023f45b8, 0xc, 0x3434343838383d4e, 0x7f003430313a, 0x7fff023f45d8, 0x8, 0x6574617669746341, 0x7fff023f4600, 0xa974850, 0xa9af0a0, 0x1bb7040, 0x7fff023f4660, 0xf20bd6 <EVEClientSession::PopPacket()+310>, 0x7fff023f4630, 0x29686c0, 0x7fff023f4650, 0x9f2751 <Singleton<EVEServerConfig>::get()+78>, 0x0, 0x7fecb0000b80, 0x7fff023f4660, 0xa9aee70, 0x1bf1988, 0x1bf17c0, 0x7fff023f46b0, 0xa00124 <Client::ProcessNet()+114>, 0x1bf1830, 0x29686c0, 0xa9aeea0, 0xa132fb <__gnu_cxx::operator!=<Client**, std::vector<Client*, std::allocator<Client*> > >(__gnu_cxx::__normal_iterator<Client**, std::vector<Client*, std::allocator<Client*> > > const&, __gnu_cxx::__normal_iterator<Client**, std::vector<Client*, std::allocator<Client*> > > const&)+44>, 0x7fff023f4740...}
#5  0x0000000000df3e7f in ModuleManager::Activate (this=0xa84dce0, itemID=140000029, effectID=10, targetID=450000006, repeat=1000) at /src/src/eve-server/ship/modules/ModuleManager.cpp:718
        pDestiny = 0xa75fb90
        pMod = 0x9c53f80
#6  0x0000000000db83d7 in ShipItem::Activate (this=0xa84b020, itemID=140000029, effectName="targetAttack", targetID=450000006, repeat=1000) at /src/src/eve-server/ship/Ship.cpp:1053
No locals.
#7  0x0000000000be1c68 in DogmaIMBound::Handle_Activate (this=0xa863f70, call=...) at /src/src/eve-server/dogmaim/DogmaIMService.cpp:972
        args = {itemID = 140000029, effectName = "targetAttack", target = 450000006, repeat = 1000}
        pClient = 0x29686c0
        __FUNCTION__ = "Handle_Activate"
#8  0x0000000000be8ee5 in PyCallableDispatcher<DogmaIMBound>::Dispatch (this=0xa863fd0, method_name="Activate", call=...) at /src/src/eve-server/PyServiceCD.h:68
        res = {first = "Activate", second = (PyResult (DogmaIMBound::*)(DogmaIMBound * const, PyCallArgs &)) 0xbe1894 <DogmaIMBound::Handle_Activate(PyCallArgs&)>}
        p = (PyResult (DogmaIMBound::*)(DogmaIMBound * const, PyCallArgs &)) 0xbe1894 <DogmaIMBound::Handle_Activate(PyCallArgs&)>
#9  0x0000000000a47ab7 in PyCallable::Call (this=0xa863f70, method="Activate", args=...) at /src/src/eve-server/PyCallable.cpp:42
        res = {ssResult = 0x7fff023f4450, ssNamedResult = 0xa1e1f4 <PyDict::end() const+28>}
#10 0x0000000000a46477 in PyBoundObject::Call (this=0xa863f70, method="Activate", args=...) at /src/src/eve-server/PyBoundObject.cpp:46
No locals.
#11 0x0000000000a0d1ca in Client::Handle_CallReq (this=0x29686c0, packet=0xa9aeea0, req=...) at /src/src/eve-server/Client.cpp:2550
        dest = 0xa863f70
        args = {client = 0x29686c0, tuple = 0x0, byname = std::map with 1 element = {["machoVersion"] = 0xa9af100}}
        result = {ssResult = 0x3, ssNamedResult = 0xa9a0040}
#12 0x0000000000f1eca1 in EVEPacketDispatcher::DispatchPacket (this=0x29686e0, packet=0xa9aeea0) at /src/src/eve-common/network/EVEPktDispatch.cpp:82
        call = {remoteObject = 0, remoteObjectStr = "N=888444:104", method = "Activate", arg_tuple = 0xa974850, arg_dict = 0xa9af0a0}
#13 0x0000000000a00124 in Client::ProcessNet (this=0x29686c0) at /src/src/eve-server/Client.cpp:300
        p = 0xa9aeea0
#14 0x0000000000a25e07 in EntityList::Process (this=0x1bf17c0) at /src/src/eve-server/EntityList.cpp:192
        pClient = 0x0
        citr = 0x29686c0
#15 0x00000000009ebf01 in main (argc=1, argv=0x7fff023f6088) at /src/src/eve-server/eve-server.cpp:897
        profileStartTime = 1632603603703.2729
        m_sleepTime = 10 '\n'
        tcps = {<TCPServer<EVETCPConnection>> = {<BaseTCPServer> = {_vptr.BaseTCPServer = 0x10a53a0 <vtable for EVETCPServer+16>, mMSock = {<Lockable> = {_vptr.Lockable = 0x1207310 <vtable for Mutex+16>}, mMutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 16 times>, "\001", '\000' <repeats 22 times>, __align = 0}}, mSock = 0x1bb6d10, mPort = 26000, mMLoopRunning = {<Lockable> = {_vptr.Lockable = 0x1207310 <vtable for Mutex+16>}, mMutex = {__data = {__lock = 1, __count = 1, __owner = 30, __nusers = 1, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = "\001\000\000\000\001\000\000\000\036\000\000\000\001\000\000\000\001", '\000' <repeats 22 times>, __align = 4294967297}}}, mMQueue = {<Lockable> = {_vptr.Lockable = 0x1207310 <vtable for Mutex+16>}, mMutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 16 times>, "\001", '\000' <repeats 22 times>, __align = 0}}, mQueue = std::queue wrapping: std::deque with 0 elements}, <No data fields>}
        errbuf = '\000' <repeats 296 times>...
        pyServMgr = {lsc_service = 0x1bff9f0, cache_service = 0x1bf03d0, m_svcList = std::map with 90 elements = {["LPSvc"] = 0x1c293f0, ["LSC"] = 0x1bff9f0, ["account"] = 0x1c00dc0, ["agentMgr"] = 0x1c01b50, ["aggressionMgr"] = 0x1c02350, ["alert"] = 0x1c9cc40, ["allianceRegistry"] = 0x1cb7000, ["authentication"] = 0x1c029f0, ["beyonce"] = 0x1d4e3b0, ["billMgr"] = 0x1d4dcd0, ["bookmark"] = 0x1d4f580, ["browserLockdownSvc"] = 0x1c03770, ["bulkMgr"] = 0x1c03b10, ["calendarMgr"] = 0x1c040b0, ["calendarProxy"] = 0x1c03f20, ["certificateMgr"] = 0x1d507b0, ["charFittingMgr"] = 0x1c04c40, ["charMgr"] = 0x1c01820, ["charUnboundMgr"] = 0x1c08b70, ["clientStatLogger"] = 0x1c062e0, ["clientStatsMgr"] = 0x1c06450, ["config"] = 0x1c65d70, ["contractMgr"] = 0x1c24c70, ["contractProxy"] = 0x1c24dc0, ["corpBookmarkMgr"] = 0x1c64f10, ["corpFittingMgr"] = 0x1c07290, ["corpRegistry"] = 0x1c87670, ["corpStationMgr"] = 0x1c6fec0, ["corpmgr"] = 0x1c63e30, ["corporationSvc"] = 0x1c62b90, ["devIndexManager"] = 0x1c280e0, ["devToolsProvider"] = 0x1c25360, ["dogma"] = 0x1c25600, ["dogmaIM"] = 0x1c254d0, ["dungeon"] = 0x1c258f0, ["dungeonExplorationMgr"] = 0x1c25750, ["encounterSpawnServer"] = 0x1c3c1d0, ["entity"] = 0x1c261e0, ["facWarMgr"] = 0x1c66ca0, ["factory"] = 0x1c27240, ["fleetMgr"] = 0x1c275a0, ["fleetObjectHandler"] = 0x1c279a0, ["fleetProxy"] = 0x1c27b10, ["holoscreenMgr"] = 0x1c27ec0, ["infoGatheringMgr"] = 0x1c282d0, ["insuranceSvc"] = 0x1ca3b80, ["invbroker"] = 0x1c28660, ["jumpCloneSvc"] = 0x1c61e70, ["keeper"] = 0x1c60f30, ["languageSvc"] = 0x1c6d370, ["localizationServer"] = 0x1c28be0, ["lookupSvc"] = 0x1c28e00, ["machoNet"] = 0x1c2a310, ["mailMgr"] = 0x1c7f190, ["mailingListsMgr"] = 0x1c79f60, ["map"] = 0x1c76f00, ["marketProxy"] = 0x1c718a0, ["missionMgr"] = 0x1c312f0, ["movementServer"] = 0x1c31440, ["netStateServer"] = 0x1c3c460, ["notificationMgr"] = 0x1c31570, ["objectCaching"] = 0x1bf03d0, ["onlineStatus"] = 0x1c39030, ["paperDollServer"] = 0x1c90290, ["petitioner"] = 0x1c39570, ["photoUploadSvc"] = 0x1c397b0, ["planetMgr"] = 0x1c8e000, ["planetOrbitalRegistryBroker"] = 0x1c8ee40, ["posMgr"] = 0x1c8cbd0, ["ramProxy"] = 0x1c39e20, ["repairSvc"] = 0x1c3a450, ["reprocessingSvc"] = 0x1c94c10, ["scanMgr"] = 0x1c3a780, ["search"] = 0x1c9d320, ["ship"] = 0x1cafb40, ["skillMgr"] = 0x1d3e240, ["slash"] = 0x1c9fd40, ["sovMgr"] = 0x1c3ab10, ["standing2"] = 0x1c98880, ["station"] = 0x1c97310, ["stationSvc"] = 0x1c95da0, ["storeServer"] = 0x1c297b0, ["trademgr"] = 0x1c3b430, ["tutorialSvc"] = 0x1c9dca0, ["userSvc"] = 0x1c3ba20, ["voiceMgr"] = 0x1c3bd70, ["voucher"] = 0x1c3bea0, ["warRegistry"] = 0x1c3bfd0, ["wormholeMgr"] = 0x1c3c0a0, ["zActionServer"] = 0x1c3c530}, m_boundObjects = std::map with 9 elements = {[101] = {client = 0x29686c0, object = 0xa85e9c0}, [102] = {client = 0x29686c0, object = 0xa855950}, [103] = {client = 0x29686c0, object = 0xa8559d0}, [104] = {client = 0x29686c0, object = 0xa863f70}, [105] = {client = 0x29686c0, object = 0xa8e6290}, [106] = {client = 0x29686c0, object = 0xa8eedc0}, [107] = {client = 0x29686c0, object = 0xa959a30}, [108] = {client = 0x29686c0, object = 0xa95c9c0}, [109] = {client = 0x29686c0, object = 0xa9613f0}}, m_nodeID = 888444, m_nextBindID = 109}
        command_dispatcher = {_vptr.CommandDispatcher = 0x10c3d90 <vtable for CommandDispatcher+16>, m_services = @0x7fff023f4840, m_db = {<ServiceDB> = {<No data fields>}, <No data fields>}, m_commands = std::map with 70 elements = {["addball"] = 0x1beee80, ["addball2"] = 0x1beef30, ["attrlist"] = 0x1bfcae0, ["autostop"] = 0x1bfd080, ["ban"] = 0x1bf2a60, ["beltlist"] = 0x1bfc160, ["bindList"] = 0x1bfd350, ["bubblelist"] = 0x1bfc8e0, ["bubbletrack"] = 0x1bfcdc0, ["bubblewarp"] = 0x1bfd180, ["cargo"] = 0x1bfc360, ["cloak"] = 0x1bf2ef0, ["commandlist"] = 0x1bfbd80, ["create"] = 0x1bf2260, ["createitem"] = 0x1bf2360, ["destinyvars"] = 0x1bfbe80, ["dogma"] = 0x1bf2900, ["dropLoot"] = 0x1bfd440, ["fit"] = 0x1bf1210, ["getattr"] = 0x1bee7a0, ["getposition"] = 0x1bfccb0, ["giveallskills"] = 0x1bf0aa0, ["giveisk"] = 0x1bf2c60, ["giveskill"] = 0x1bf0ba0, ["giveskills"] = 0x1bef800, ["goto"] = 0x1bf1500, ["halt"] = 0x1befa40, ["heal"] = 0x1bee2d0, ["healtarget"] = 0x1bee380, ["hop"] = 0x1bee120, ["inventory"] = 0x1bfc250, ["kick"] = 0x1bf29b0, ["kill"] = 0x1bef010, ["killallnpcs"] = 0x1bf2e40, ["list"] = 0x1bfbc60, ["location"] = 0x1befb40, ["online"] = 0x1bf3400, ["players"] = 0x1bfceb0, ["pop"] = 0x1bee6e0, ["pos"] = 0x1bf30a0, ["repairmodules"] = 0x1bef6f0, ["runtest"] = 0x1bfd270, ["search"] = 0x1bf2c00, ["secstatus"] = 0x1bfbb60, ["sendstate"] = 0x1beedd0, ["setattr"] = 0x1bf1110, ["setbpattr"] = 0x1bee740, ["shipdna"] = 0x1bfc720, ["shipinventory"] = 0x1bfc460, ["shipvars"] = 0x1bfbf60, ["showall"] = 0x1bfcf90, ["showsession"] = 0x1bfc550, ["shutdown"] = 0x1bfc050, ["siglist"] = 0x1bee1d0, ["skilllist"] = 0x1bfc630, ["sov"] = 0x1bf2ff0, ["spawn"] = 0x1beed00, ["spawnn"] = 0x1bf1b20, ["status"] = 0x1bee470, ["syncloc"] = 0x1bf0dd0, ["syncpos"] = 0x1bf0ed0, ["targlist"] = 0x1bfc800, ["tr"] = 0x1bf16f0, ["track"] = 0x1bfc9f0, ["translocate"] = 0x1bf1600, ["unban"] = 0x1bf21b0, ["unload"] = 0x1bf34b0, ["unspawn"] = 0x1bf2ba0, ["update"] = 0x1bf0f80, ["warpto"] = 0x1bfcbd0}}
        startTime = 1632603604343.856
        start = 13260276
        tcpc = 0x0

gdb list
zhyrohaad commented 2 years ago

this was disabled at one time to prevent crashing. not sure what changed or when. this crash looks like ship ref is missing for distance check. (segfault - deref null ptr)

jdhirst commented 2 years ago

So while testing this, let me say WOW this is janky. During testing, I ran into the following:

Funnily enough, the one thing I couldn't reproduce is the segfault mentioned here 🤷 I'm testing in staging, but nothing should really have changed since master which would make this happen or not I think 😁

@wibiti do you mind testing again with the latest commit in staging?

@zhyrohaad have you seen any of the above before?

zhyrohaad commented 2 years ago

ja, sadly i am familiar with all of the above. LOL

to comment on points.... 1) yes, asteroids have no hp. pilots should not be able to activate offensive weapons on them. this was checked/denied in activate code at one time. dunno if that part made it into official. (havent had time to look) a) at one time, there was a bug where a pilot was crim flagged for pewpew-ing roids... https://forums-archive.eveonline.com/topic/172780 2) because of the 'no hp', roids are one-shot kills....then server sends "ship explosion" and other ship-related popping data to client, then client tries to apply ship shit to asteroid....and chaos ensues. upon a complete destiny reset, things work again. 3) timers and locking were both working very well.....not sure when this changed. (another point for unit testing) 4) yeah, client freaked out with data sent about 'dead roid'. see point 2. a) that msg happens fairly rarely now. the number is the messageID (from client defines) that server sends. it is the error msgs in the throws. ive found and fixed most of them, but there are a few i havent found still in there. this is also why there are error msgs commented out around throw blocks. (bad msgIDs). you wont find that msg in our code....its client-side. 5) yes, all gfx was working at one point. i dont know they rhyme or reason why they work at times and dont at others.
a) gfx seems to work/not depending on ship also. b) ahhh....that msg fxID = 0 for .... is one i put in while working gfx. that and the next mean there is no data in db for that weapon's gfx, which explains why it's not working. there are a few of those, also, but has been low on my list.

the actual segfault i believe is/will be rather elusive....not sure where to start on that one

to fix this, we first need to find that target check in weapon activate code and make sure it's doing it's job. i believe everything after that is just from popping a SE that shouldnt be popped.

zhyrohaad commented 2 years ago

i cannot reproduce this yet. running local staging branch, with no changes to module or weapon code.

EDIT let me elaborate a bit.... in my testing of mining and modules for other things, i tried this.

first targeted 3 asteroids, one scordite and two veldspar. target speed is determined by target type, pilot skills, and ship electronics.
target time for asteroids and other non-hostile, non-ship entities should be 2s. immediate yellow-box with 2s timer. after timer rundown, red-boxed asteroids.
target timer test successful.

i then activated one autocannon on one veldspar and another autocannon on the single scordite. activate code allowed my ship to shoot the roids. successful test 1 - weapons allowed to activate on asteroids successful test 2 - weapon charges get consumed while active and data updated on client screen

the damage msg showed zero damage. "your xxx autocannon hit veldspar/scordite doing 0.0 damage". successful test - weapons do no damage to asteroids

changed ammo on both weapons (successful test - changing weapon charges in space), then loaded crystals in one strip miner. (successful test - loading mining crystals in space)

next, i activated mining lasers and strip miners (successful test - mining lasers activate on asteroid) and let them run thru a few cycles (about 45 minutes) while watching cargo. (successful test - mining lasers pulled ore amounts exactly as shown in "show info" window, both with and without charges) i jettisoned some, tried to jetcan more (which didnt let me as the wait time wasnt completed yet - successful test), and moved remaining ore from ore hold to cargo hold. (successful test - moving cargo between holds in space) after letting ore hold fill up, the modules successfully auto-stopped with "cargo full" messages. (successful test - mining module deactivates and gives message when cargo full)

then i activated the autocannons again, with same results as before, confirming previous testing.

so, for shitz-n-giggles, i targeted the jetcan. 2s target time resulted in a successful test there. activate weapons on jetcan had no effect for me. this was two tests in one.... test one - activate weapon on jet can: successful test two - weapons damage containers in space: failed i should also note there were no damage messages.

i was not allowed to activate miner on jetcan, so thats a win, too. (successful test - only weapons, tractor, salvagers and rr allowed to activate on jetcans) i think there are others im missing here

anyway, that's my report.

zhyrohaad commented 2 years ago

working on adding this feature. current plan is to allow shooting of asteroids. if a roid is destroyed while a mining module is activated, the miner will deactivate and dump the ore it has already aquired. will close this once i am finished testing.