From eec4adfc44112217df13cd9e0ea663000b079093 Mon Sep 17 00:00:00 2001 From: AleaJactaEst Date: Sat, 9 Jun 2018 19:07:04 +0200 Subject: [PATCH 1/6] update patch libicuuc (use git diff) --- patch/libicuuc.patch | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/patch/libicuuc.patch b/patch/libicuuc.patch index 36812a285..56dc4453d 100644 --- a/patch/libicuuc.patch +++ b/patch/libicuuc.patch @@ -1,6 +1,8 @@ ---- code/CMakeLists.txt.origin 2018-03-17 16:37:45.862885882 +0100 -+++ code/CMakeLists.txt 2018-03-18 10:40:02.320751401 +0100 -@@ -148,6 +148,17 @@ +diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt +index 4e422c0b5..e76be35f1 100644 +--- a/code/CMakeLists.txt ++++ b/code/CMakeLists.txt +@@ -153,6 +153,17 @@ IF(WITH_STATIC) IF(LIBLZMA_LIBRARIES) SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${LIBLZMA_LIBRARIES}) ENDIF() @@ -17,4 +19,4 @@ + ENDIF() ENDIF() ENDIF() - + From e6c104495e8c2fb778082e3d6a81b1e2fac86b74 Mon Sep 17 00:00:00 2001 From: AleaJactaEst Date: Sat, 9 Jun 2018 19:07:21 +0200 Subject: [PATCH 2/6] update patch libcrypto(use git diff) --- patch/libcrypto.patch | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/patch/libcrypto.patch b/patch/libcrypto.patch index 5910b285b..daacdde3e 100644 --- a/patch/libcrypto.patch +++ b/patch/libcrypto.patch @@ -1,6 +1,8 @@ ---- code/CMakeLists.txt.origin 2018-03-16 22:55:31.148698694 +0100 -+++ code/CMakeLists.txt 2018-03-17 16:37:45.862885882 +0100 -@@ -440,6 +440,20 @@ +diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt +index 43054b63e..4e422c0b5 100644 +--- a/code/CMakeLists.txt ++++ b/code/CMakeLists.txt +@@ -445,6 +445,20 @@ IF(WITH_NEL) SET(CURL_LIBRARIES ${CURL_LIBRARIES} ${IDN_LIBRARY}) ENDIF() From c3ea334f8a7386902880b631e2d10531a8516fd9 Mon Sep 17 00:00:00 2001 From: AleaJactaEst Date: Sat, 9 Jun 2018 19:08:05 +0200 Subject: [PATCH 3/6] correct issue #38 crash ais sur debian stretch --- ..._service_script_vm_crash_native_call.patch | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 patch/01_ryzom_ai_service_script_vm_crash_native_call.patch diff --git a/patch/01_ryzom_ai_service_script_vm_crash_native_call.patch b/patch/01_ryzom_ai_service_script_vm_crash_native_call.patch new file mode 100644 index 000000000..a910212d3 --- /dev/null +++ b/patch/01_ryzom_ai_service_script_vm_crash_native_call.patch @@ -0,0 +1,84 @@ +diff --git a/code/nel/include/nel/misc/smart_ptr.h b/code/nel/include/nel/misc/smart_ptr.h +index 2273cebeb..df80c7b77 100644 +--- a/code/nel/include/nel/misc/smart_ptr.h ++++ b/code/nel/include/nel/misc/smart_ptr.h +@@ -495,6 +495,7 @@ public: + : _DbgCRefs(0) + , _DbgCCstRefs(0) + , _MaxRef(maxRef) ++ , _CheckOn(true) + , _FirstReference(NULL) + , _FirstCstReference(NULL) + { +diff --git a/code/ryzom/server/src/ai_service/script_vm.h b/code/ryzom/server/src/ai_service/script_vm.h +index bc6e56c15..0b931c63d 100644 +--- a/code/ryzom/server/src/ai_service/script_vm.h ++++ b/code/ryzom/server/src/ai_service/script_vm.h +@@ -141,6 +141,8 @@ public: + union + { + int _vali; ++ float _valf; ++ std::string * _valsp; + uintptr_t _valp; + }; + +@@ -351,7 +353,7 @@ inline + CScriptStack::CStackEntry& CScriptStack::CStackEntry::operator=(float const& f) + { + clean(); +- _vali = *((int*)&f); ++ _valf = f; + _type = EFloat; + return *this; + } +@@ -368,7 +370,7 @@ CScriptStack::CStackEntry& CScriptStack::CStackEntry::operator=(std::string cons + { + clean(); + std::string* const strPt = new std::string(str); +- _valp = *((int*)&strPt); ++ _valsp = strPt; + _type = EString; + return *this; + } +@@ -376,7 +378,7 @@ inline + CScriptStack::CStackEntry& CScriptStack::CStackEntry::operator=(IScriptContext* sc) + { + clean(); +- _valp = *((int*)&sc); ++ _valp = (uintptr_t) sc; + _type = EContext; + return *this; + } +@@ -484,13 +486,13 @@ inline + std::string& CScriptStack::CStackEntry::getString() + { + nlassert(_type==EString); +- return *(*((std::string**)&_valp)); ++ return *( (std::string*) _valp); + } + inline + std::string const& CScriptStack::CStackEntry::getString() const + { + nlassert(_type==EString); +- return *(*((std::string**)&_valp)); ++ return *_valsp; + } + inline + IScriptContext* CScriptStack::CStackEntry::getIScriptContext() +@@ -514,13 +516,13 @@ inline + float& CScriptStack::CStackEntry::getFloat() + { + nlassert(_type==EFloat); +- return *((float*)&_vali); ++ return _valf; + } + inline + float const& CScriptStack::CStackEntry::getFloat() const + { + nlassert(_type==EFloat); +- return *((float const*)&_vali); ++ return _valf; + } + + inline From 578ee9164b7857818c93f9f0dd9e1c5a36480c4a Mon Sep 17 00:00:00 2001 From: AleaJactaEst Date: Sat, 9 Jun 2018 19:08:21 +0200 Subject: [PATCH 4/6] update debug message --- patch/01_ryzom_debug_callNativeCallBack.patch | 535 +++++++++++++++++- 1 file changed, 531 insertions(+), 4 deletions(-) diff --git a/patch/01_ryzom_debug_callNativeCallBack.patch b/patch/01_ryzom_debug_callNativeCallBack.patch index 4f08e09fe..5cecda00c 100644 --- a/patch/01_ryzom_debug_callNativeCallBack.patch +++ b/patch/01_ryzom_debug_callNativeCallBack.patch @@ -1,10 +1,537 @@ ---- code/ryzom/server/src/ai_service/script_vm.cpp.origin 2018-04-20 21:44:21.605504352 +0200 -+++ code/ryzom/server/src/ai_service/script_vm.cpp 2018-04-20 21:45:30.011307907 +0200 -@@ -919,6 +919,7 @@ +diff --git a/code/ryzom/server/src/ai_service/script_vm.cpp b/code/ryzom/server/src/ai_service/script_vm.cpp +index 243110520..61d54988b 100644 +--- a/code/ryzom/server/src/ai_service/script_vm.cpp ++++ b/code/ryzom/server/src/ai_service/script_vm.cpp +@@ -132,11 +132,13 @@ void CScriptVM::interpretCode( + size_t index = startIndex; + string currentString; + ++ nldebug("interpretCode start - thisContext %lx", thisContext); + while (index < opcodes.size()) + { + #if !FINAL_VERSION + EOpcode op = (EOpcode)opcodes[index]; + #endif ++ nldebug("%d", opcodes[index]); + + switch (opcodes[index]) + { +@@ -146,9 +148,11 @@ void CScriptVM::interpretCode( + nlassert(false); + break; + case EOP: ++ nldebug("EOP"); + return; // End Of Program + + case EQ: // == Need: Value1: Value2 After: Value1==Value2 (Boolean as float) ++ nldebug("EQ"); + { + const float res=stack.top(1)==stack.top()?1.f:0.f; + stack.pop(); +@@ -157,6 +161,7 @@ void CScriptVM::interpretCode( + } + continue; + case NEQ: // != Need: Value1: Value2 After: Value1!=Value2 (Boolean as float) ++ nldebug("NEQ"); + { + const float res=stack.top(1)!=stack.top()?1.f:0.f; + stack.pop(); +@@ -165,6 +170,7 @@ void CScriptVM::interpretCode( + } + continue; + case INF: // < Need: Value1: Value2 After: Value1 Need: Value1: Value2 After: Value1>Value2 (Boolean as float) ++ nldebug("SUP"); + { + const float res=stack.top(1)>stack.top()?1.f:0.f; + stack.pop(); +@@ -189,6 +197,7 @@ void CScriptVM::interpretCode( + } + continue; + case SUPEQ: // >= Need: Value1: Value2 After: Value1>=Value2 (Boolean as float) ++ nldebug("SUPEQ"); + { + const float res=stack.top(1)>=stack.top()?1.f:0.f; + stack.pop(); +@@ -197,6 +206,7 @@ void CScriptVM::interpretCode( + } + continue; + case ADD: // + Need: Value1: Value2 After: Value1+Value2 ++ nldebug("ADD"); + { + CScriptStack::CStackEntry &entry0=stack.top(); + CScriptStack::CStackEntry &entry1=stack.top(1); +@@ -232,6 +242,7 @@ void CScriptVM::interpretCode( + } + continue; + case SUB: // - Need: Value1: Value2 After: Value1-Value2 ++ nldebug("SUB"); + { + const float val=stack.top(); + stack.pop(); +@@ -240,6 +251,7 @@ void CScriptVM::interpretCode( + } + continue; + case MUL: // * Need: Value1: Value2 After: Value1/Value2 ++ nldebug("MUL"); + { + float &res=stack.top(1); + res*=(float&)stack.top(); +@@ -248,6 +260,7 @@ void CScriptVM::interpretCode( + } + continue; + case DIV: // / Need: Value1: Value2 After: Value1/Value2 !Exception Gestion. ++ nldebug("DIV"); + { + float &res=stack.top(1); + const float &divisor=stack.top(); +@@ -260,6 +273,7 @@ void CScriptVM::interpretCode( + } + continue; + case AND: // && Need: Value1: Value2 After: Value1&&Value2 ++ nldebug("AND"); + { + const bool val1=(float&)stack.top(1)!=0.f; + const bool val2=(float&)stack.top()!=0.f; +@@ -269,6 +283,7 @@ void CScriptVM::interpretCode( + } + continue; + case OR: // || Need: Value1: Value2 After: Value1||Value2 ++ nldebug("OR"); + { + const bool val1=(float&)stack.top(1)!=0.f; + const bool val2=(float&)stack.top()!=0.f; +@@ -278,6 +293,7 @@ void CScriptVM::interpretCode( + } + continue; + case NOT: // ! Need: Value After: !Value ++ nldebug("NOT"); + { + float &val=stack.top(); + val=(val==0.f)?1.f:0.f; +@@ -285,18 +301,21 @@ void CScriptVM::interpretCode( + } + continue; + case PUSH_ON_STACK: // Set a Value (float) Need: - After: Value(float) ++ nldebug("PUSH_ON_STACK"); + { + stack.push(*((float*)&opcodes[index+1])); + index+=2; + } + continue; + case POP: // Pop Need: ValToPop After: - ++ nldebug("POP"); + { + stack.pop(); + index++; + } + continue; + case SET_VAR_VAL: // Set a Value to a Var. Need: VarName: VarValue After: - ++ nldebug("SET_VAR_VAL"); + { + float f = 0.0f; + switch (stack.top().type()) +@@ -321,6 +340,7 @@ void CScriptVM::interpretCode( + } + continue; + case SET_STR_VAR_VAL: // Set a Value to a Var. Need: VarName: VarValue After: - ++ nldebug("SET_STR_VAR_VAL"); + { + switch (stack.top().type()) + { +@@ -344,6 +364,7 @@ void CScriptVM::interpretCode( + } + continue; + case SET_CTX_VAR_VAL: // Set a Value to a Var. Need: VarName: VarValue After: - ++ nldebug("SET_CTX_VAR_VAL"); + { + switch (stack.top().type()) + { +@@ -361,6 +382,7 @@ void CScriptVM::interpretCode( + } + continue; + case PUSH_VAR_VAL: // Push the Value of a Var. Need: - (VarName on next IP) After: VarValue(float) ++ nldebug("PUSH_VAR_VAL"); + { + const float f=thisContext->getLogicVar(*((TStringId*)&opcodes[index+1])); + stack.push(f); +@@ -368,6 +390,7 @@ void CScriptVM::interpretCode( + } + continue; + case PUSH_STR_VAR_VAL: // Push the Value of a Var. Need: - (VarName on next IP) After: VarValue(float) ++ nldebug("PUSH_STR_VAR_VAL"); + { + std::string str = thisContext->getStrLogicVar(*((TStringId*)&opcodes[index+1])); + stack.push(str); +@@ -375,6 +398,7 @@ void CScriptVM::interpretCode( + } + continue; + case PUSH_CTX_VAR_VAL: // Push the Value of a Var. Need: - (VarName on next IP) After: VarValue(float) ++ nldebug("PUSH_CTX_VAR_VAL"); + { + IScriptContext* ctx = thisContext->getCtxLogicVar(*((TStringId*)&opcodes[index+1])); + stack.push(ctx); +@@ -581,6 +605,7 @@ void CScriptVM::interpretCode( + continue; + */ + case SET_CONTEXT_VAR_VAL: ++ nldebug("SET_CONTEXT_VAR_VAL"); + { + IScriptContext* otherContext = (IScriptContext*)0; + switch (stack.top().type()) +@@ -619,6 +644,7 @@ void CScriptVM::interpretCode( + } + continue; + case SET_CONTEXT_STR_VAR_VAL: ++ nldebug("SET_CONTEXT_STR_VAR_VAL"); + { + IScriptContext* otherContext = (IScriptContext*)0; + switch (stack.top().type()) +@@ -657,6 +683,7 @@ void CScriptVM::interpretCode( + } + continue; + case SET_CONTEXT_CTX_VAR_VAL: ++ nldebug("SET_CONTEXT_CTX_VAR_VAL"); + { + IScriptContext* otherContext = (IScriptContext*)0; + switch (stack.top().type()) +@@ -689,6 +716,7 @@ void CScriptVM::interpretCode( + } + continue; + case PUSH_CONTEXT_VAR_VAL: ++ nldebug("PUSH_CONTEXT_VAR_VAL"); + { + IScriptContext* otherContext = (IScriptContext*)0; + switch (stack.top().type()) +@@ -714,6 +742,7 @@ void CScriptVM::interpretCode( + } + continue; + case PUSH_CONTEXT_STR_VAR_VAL: ++ nldebug("PUSH_CONTEXT_STR_VAR_VAL"); + { + IScriptContext* otherContext = (IScriptContext*)0; + switch (stack.top().type()) +@@ -737,6 +766,7 @@ void CScriptVM::interpretCode( + } + continue; + case PUSH_CONTEXT_CTX_VAR_VAL: ++ nldebug("PUSH_CONTEXT_CTX_VAR_VAL"); + { + IScriptContext* otherContext = (IScriptContext*)0; + switch (stack.top().type()) +@@ -760,11 +790,13 @@ void CScriptVM::interpretCode( + } + continue; + case JUMP: // Jump + nb size_t to jump (relative). Need: NewJumpOffset After: - ++ nldebug("JUMP"); + { + index+=opcodes[index+1]+1; // AGI .. Not Opt + } + continue; + case JE: // Jump if last stack value is FALSE(==0). Need: BoolValue(float) (NewJumpOffset on Next Ip) After: - ++ nldebug("JE"); + { + if ((float&)stack.top()==0.f) + index+=opcodes[index+1]+1; // AGI .. Not Opt +@@ -774,6 +806,7 @@ void CScriptVM::interpretCode( + } + continue; + case JNE: // Jump if last stack value is TRUE(!=0). Need: BoolValue(float) (NewJumpOffset on Next Ip) After: - ++ nldebug("JNE"); + { + if ((float&)stack.top()!=0.f) + index+=opcodes[index+1]+1; // AGI .. Not Opt +@@ -783,12 +816,14 @@ void CScriptVM::interpretCode( + } + continue; + case PUSH_PRINT_STRING: ++ nldebug("PUSH_PRINT_STRING"); + { + currentString+=CStringMapper::unmap(*((TStringId*)&opcodes[index+1])); // strPt.substr(1,strPt.size()-2); + index+=2; + } + continue; + case PUSH_PRINT_VAR: ++ nldebug("PUSH_PRINT_VAR"); + { + float const val = thisContext->getLogicVar(*((TStringId*)&opcodes[index+1])); + currentString += NLMISC::toString("%g", val); +@@ -796,6 +831,7 @@ void CScriptVM::interpretCode( + } + continue; + case PUSH_PRINT_STR_VAR: ++ nldebug("PUSH_PRINT_STR_VAR"); + { + string const str = thisContext->getStrLogicVar(*((TStringId*)&opcodes[index+1])); + currentString += str; +@@ -803,6 +839,7 @@ void CScriptVM::interpretCode( + } + continue; + case PRINT_STRING: ++ nldebug("PRINT_STRING"); + { + if (AIScriptDisplayPrint) + { +@@ -813,6 +850,7 @@ void CScriptVM::interpretCode( + } + continue; + case LOG_STRING: ++ nldebug("LOG_STRING"); + { + if (AIScriptDisplayLog) + { +@@ -823,6 +861,7 @@ void CScriptVM::interpretCode( + } + continue; + case FUNCTION: ++ nldebug("FUNCTION"); + { + // on_event + TStringId const eventName = *((TStringId*)&opcodes[index+1]); +@@ -835,6 +874,7 @@ void CScriptVM::interpretCode( + } + continue; + case CALL: ++ nldebug("CALL"); + { + // set_event + const TStringId eventName=*((TStringId*)&opcodes[index+1]); +@@ -850,11 +890,13 @@ void CScriptVM::interpretCode( + case PUSH_THIS: + { + IScriptContext* const sc=thisContext; ++ nldebug("PUSH_THIS (%lx)", sc); + stack.push(sc); + index++; + } + continue; + case PUSH_GROUP: ++ nldebug("PUSH_GROUP"); + { + const TStringId strId=*((TStringId*)&opcodes[index+1]); + +@@ -881,11 +923,13 @@ void CScriptVM::interpretCode( + case PUSH_STRING: + { + const string &str = CStringMapper::unmap(*((TStringId*)&opcodes[index+1])); ++ nldebug("PUSH_STRING (%s)", str.c_str()); + stack.push(str); + index+=2; + } + continue; + case ASSIGN_FUNC_FROM: ++ nldebug("ASSIGN_FUNC_FROM"); + { + const TStringId srcFunc=CStringMapper::map(stack.top()); + stack.pop(); +@@ -910,6 +954,7 @@ void CScriptVM::interpretCode( + } + continue; + case NATIVE_CALL: ++ nldebug("NATIVE_CALL"); + { + IScriptContext* const sc = stack.top(); + stack.pop(); +@@ -919,6 +964,7 @@ void CScriptVM::interpretCode( string const& outParamsSig = CStringMapper::unmap(*((TStringId*)&opcodes[++index])); if (sc) { -+ nlinfo ("launch callNativeCallBack: funcName:%s mode:%d inParamsSig:'%s' outParamsSig:'%s'", funcName.c_str(), mode, inParamsSig.c_str(), outParamsSig.c_str()); ++ nldebug ("launch callNativeCallBack: %lx funcName:%s mode:%d inParamsSig:'%s' outParamsSig:'%s'", sc, funcName.c_str(), mode, inParamsSig.c_str(), outParamsSig.c_str()); sc->callNativeCallBack(thisContext, funcName, mode, inParamsSig, outParamsSig, &stack); } else +@@ -949,6 +995,7 @@ void CScriptVM::interpretCode( + } + continue; + case RAND: ++ nldebug("RAND"); + { + const size_t randIndex=rand32((uint32)opcodes[index+1]); // rand(RANDCOUNT) + index+=3; // pass RAND + RANDCOUNT + 1 +@@ -960,12 +1007,14 @@ void CScriptVM::interpretCode( + } + continue; + case RET: ++ nldebug("RET"); + { + index=(int&)stack.top(); + stack.pop(); + } + continue; + case ONCHILDREN: ++ nldebug("ONCHILDREN"); + { + if (thisContext) + { +@@ -975,6 +1024,7 @@ void CScriptVM::interpretCode( + } + continue; + case SWITCH: ++ nldebug("SWITCH"); + { + // !!!!! + size_t compValue=0; +@@ -1027,6 +1077,7 @@ void CScriptVM::interpretCode( + } + continue; + case INCR: // Increment top of stack. ++ nldebug("INCR"); + { + float &f = stack.top(); + ++f; +@@ -1034,6 +1085,7 @@ void CScriptVM::interpretCode( + } + continue; + case DECR: // Decrement top of stack. ++ nldebug("DECR"); + { + float &f = stack.top(); + --f; +@@ -1041,12 +1093,14 @@ void CScriptVM::interpretCode( + } + continue; + case CONCAT: // Concatenates 2 strings ++ nldebug("CONCAT"); + { + (string&)stack.top(1) += (string&)stack.top(); + stack.pop(); + } + continue; + case FTOS: // Convert a float to a string ++ nldebug("FTOS"); + { + stack.top()=NLMISC::toString("%g", (float&)stack.top()); + } +@@ -1054,6 +1108,7 @@ void CScriptVM::interpretCode( + } + nlassert(false); // must use continue !! Not implemented. + } ++ nldebug("interpretCode end"); + } + + } +diff --git a/code/ryzom/server/src/ai_service/script_vm.h b/code/ryzom/server/src/ai_service/script_vm.h +index 0b931c63d..15a9f4121 100644 +--- a/code/ryzom/server/src/ai_service/script_vm.h ++++ b/code/ryzom/server/src/ai_service/script_vm.h +@@ -21,6 +21,7 @@ + //#include "ai_grp.h" + + #include ++#include + + namespace AIVM + { +@@ -310,6 +311,7 @@ inline + CByteCode::CByteCode(std::string const& sourceName) + : _sourceName(sourceName) + { ++ nldebug("[%lx]", this); + } + + inline +@@ -334,17 +336,20 @@ inline + CScriptStack::CStackEntry::CStackEntry() + : _type(ENone) + { ++ nldebug("[%lx]", this); + } + + inline + CScriptStack::CStackEntry::~CStackEntry() + { ++ nldebug("[%lx]", this); + clean(); + } + + inline + void CScriptStack::CStackEntry::clean() + { ++ nldebug("[%lx]", this); + if (_type==EString) + delete &getString(); + } +@@ -352,6 +357,7 @@ void CScriptStack::CStackEntry::clean() + inline + CScriptStack::CStackEntry& CScriptStack::CStackEntry::operator=(float const& f) + { ++ nldebug("[%lx] float:'%f'", this, f); + clean(); + _valf = f; + _type = EFloat; +@@ -360,6 +366,7 @@ CScriptStack::CStackEntry& CScriptStack::CStackEntry::operator=(float const& f) + inline + CScriptStack::CStackEntry& CScriptStack::CStackEntry::operator=(int const& i) + { ++ nldebug("[%lx] int:'%d'", this, i); + clean(); + _vali = i; + _type = EOther; +@@ -368,6 +375,7 @@ CScriptStack::CStackEntry& CScriptStack::CStackEntry::operator=(int const& i) + inline + CScriptStack::CStackEntry& CScriptStack::CStackEntry::operator=(std::string const& str) + { ++ nldebug("[%lx] string:'%s'", this, str.c_str()); + clean(); + std::string* const strPt = new std::string(str); + _valsp = strPt; +@@ -377,6 +385,7 @@ CScriptStack::CStackEntry& CScriptStack::CStackEntry::operator=(std::string cons + inline + CScriptStack::CStackEntry& CScriptStack::CStackEntry::operator=(IScriptContext* sc) + { ++ nldebug("[%lx] IScriptContext:[%lx]", this, sc); + clean(); + _valp = (uintptr_t) sc; + _type = EContext; +@@ -553,17 +562,20 @@ void CScriptStack::push(int val) + inline + CScriptStack::CStackEntry& CScriptStack::top() // is this an optimisation of the method below ? + { ++ nldebug("[%lx]", this); + return _Stack.back(); + } + inline + CScriptStack::CStackEntry& CScriptStack::top(int index) + { ++ nldebug("[%lx] index:%d", this, index); + return *(_Stack.rbegin()+index); + } + + inline + void CScriptStack::pop() + { ++ nldebug("[%lx]", this); + _Stack.pop_back(); + } + +diff --git a/code/ryzom/server/src/ai_service/state_instance.h b/code/ryzom/server/src/ai_service/state_instance.h +index 916b6bc47..d7de97f18 100644 +--- a/code/ryzom/server/src/ai_service/state_instance.h ++++ b/code/ryzom/server/src/ai_service/state_instance.h +@@ -505,7 +505,10 @@ void CStateInstance::processStateEvent(CAIEvent const& stateEvent, CAIState cons + + getDebugHistory()->addHistory("STATE: '%s' EVENT: '%s' REACTION: '%s'", state->getAliasNode()->fullName().c_str(), + stateEvent.getName().c_str(), reaction.getAliasNode()->fullName().c_str()); +- ++ nldebug("STATE: '%s' EVENT: '%s' REACTION: '%s'", ++ state->getAliasNode()->fullName().c_str(), ++ stateEvent.getName().c_str(), ++ reaction.getAliasNode()->fullName().c_str()); + foundReaction=true; + + if (!reaction.getAction()) From da4f009890b06a8177861f0b8c34fd5bed5200db Mon Sep 17 00:00:00 2001 From: AleaJactaEst Date: Sat, 9 Jun 2018 19:09:04 +0200 Subject: [PATCH 5/6] adding file to list all patch --- patch/series | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 patch/series diff --git a/patch/series b/patch/series new file mode 100644 index 000000000..659eabf46 --- /dev/null +++ b/patch/series @@ -0,0 +1,4 @@ +libcrypto.patch +libicuuc.patch +01_ryzom_ai_service_script_vm_crash_native_call.patch +01_ryzom_debug_callNativeCallBack.patch From b23098562b4032a8e30d145d8a679f7307da9045 Mon Sep 17 00:00:00 2001 From: AleaJactaEst Date: Sun, 10 Jun 2018 00:29:46 +0200 Subject: [PATCH 6/6] disable build archlinux - #16 - Build on ArchLinux generate an error - static assertion failed: std::multimap must have the same value_type as its allocator --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d649eec75..fa9f12e72 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -547,6 +547,8 @@ Linux client archlinux build: - cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup - curl -o /etc/pacman.d/mirrorlist.new https://www.archlinux.org/mirrorlist/all/ - sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.new + - ls /usr/bin/* + - pacman -Syyu --noconfirm pacman-contrib - rankmirrors -n 6 /etc/pacman.d/mirrorlist.new > /etc/pacman.d/mirrorlist - pacman -Syyu - pacman -S --noconfirm @@ -626,6 +628,7 @@ Linux client archlinux build: paths: - code/build/bin expire_in: 2 week + when: manual # Gentoo Client