Jump to content

Weber K.

Community Members
  • Posts

    15
  • Joined

  • Last visited

Profile Information

  • Gender
    Male
  • Location
    Brasília, Brazil

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Weber K.'s Achievements

Discens

Discens (2/14)

13

Reputation

  1. Did it! Please, as english is not my mother tongue, can someone look for typos and style corrections? Thank you very much!
  2. I've created a new chroot jail sandbox for compiling and in this new sandbox I've upgraded a lot of packages. After compiling in this new sandbox, lobby was not crashing. This way, I don't know if only upgrading gloox to 1.0.22 and recompiling is enough for solving TLS problem or not. But I've provided all packages of my test environment, as reference.
  3. Hello all! Thank you very much! You are awesome! Good news! Fix released: https://code.wildfiregames.com/D1852 I applied with: patch -p0 < D1852.diff And I can connect to lobby! No crash! Here are my packages: (Maybe the patch and this list could be included in https://trac.wildfiregames.com/wiki/BuildInstructions#Slackware ) boost-1.59.0-x86_64-1 icu4c-56.1-x86_64-2 libogg-1.3.2-x86_64-1 cmake-3.5.2-x86_64-1.txz curl-7.64.0-x86_64-2_slack14.2.txz enet-1.3.12-x86_64-1_slonly.txz gcc-5.5.0-x86_64-1_slack14.2.txz gcc-g++-5.5.0-x86_64-1_slack14.2.txz guile-2.0.11-x86_64-2.txz libXcursor-1.1.15-x86_64-1_slack14.2.txz libpng-1.6.27-x86_64-1_slack14.2.txz libsodium-1.0.16-x86_64-1_slonly.txz libvorbis-1.3.6-x86_64-1_slack14.2.txz libxml2-2.9.5-x86_64-1_slack14.2.txz make-4.1-x86_64-2.txz mozilla-nss-3.40.1-x86_64-1_slack14.2.txz pkg-config-0.29.2-x86_64-1_slack14.2.txz premake-4.4_beta5-x86_64-1_slonly.txz zlib-1.2.11-x86_64-1_slack14.2.txz OpenAL-1.18.1-x86_64-1alien.txz libzip-1.0.1-x86_64-3_slack14.2.txz sdl2-2.0.3-x86_64-1jsc.txz miniupnpc-2.0-x86_64-1_slonly.txz wxGTK3-3.0.4-x86_64-2ponce.txz flex-2.6.0-x86_64-1.txz libSM-1.2.2-x86_64-2.txz binutils-2.26-x86_64-3.txz gloox-1.0.22-x86_64-1_SBo.tgz perl-5.22.2-x86_64-1.txz python-2.7.16-x86_64-1_slack14.2.txz python-setuptools-22.0.5-x86_64-1.txz pip-9.0.3-x86_64-1_slonly.txz sed-4.2.2-x86_64-1.txz kernel-headers-4.4.157-x86-1.txz OpenGL (mesa 11.2.2) 2.9.0 git (not used, downloaded tarball)
  4. This backtrace is when it crashes right after clicking login. The other backtrace I can see the lobby, then it crashes. Thread 1 (Thread 0x7ffff7f87b80 (LWP 24753)): #0 0x00007ffff490b72e in gloox::Tag::xmlns(std::string const&) const () from /usr/lib64/libgloox.so.13 No symbol table info available. #1 0x00007ffff490c33d in gloox::Tag::xmlns() const () from /usr/lib64/libgloox.so.13 No symbol table info available. #2 0x0000000000a916f7 in glooxwrapper::Tag::xmlns (this=this@entry=0x3ade4c0) at ../../../source/lobby/glooxwrapper/glooxwrapper.cpp:735 No locals. #3 0x0000000000a8bc3c in GameListQuery::GameListQuery (this=0x5331bb0, tag=0x3ade4c0) at ../../../source/lobby/StanzaExtensions.cpp:129 c = <optimized out> #4 0x0000000000a8c985 in GameListQuery::newInstance (this=<optimized out>, tag=0x3ade4c0) at ../../../source/lobby/StanzaExtensions.h:67 No locals. #5 0x0000000000a95e17 in glooxwrapper::StanzaExtensionWrapper::newInstance (this=0x4381510, tag=0x25c4050) at ../../../source/lobby/glooxwrapper/glooxwrapper.cpp:257 tagWrapper = 0x3ade4c0 ret = <optimized out> #6 0x00007ffff496c4be in gloox::StanzaExtensionFactory::addExtensions(gloox::Stanza&, gloox::Tag*) () from /usr/lib64/libgloox.so.13 No symbol table info available. #7 0x00007ffff49064b6 in gloox::ClientBase::handleTag(gloox::Tag*) () from /usr/lib64/libgloox.so.13 No symbol table info available. #8 0x00007ffff48faa72 in gloox::Parser::closeTag() () from /usr/lib64/libgloox.so.13 No symbol table info available. #9 0x00007ffff48fbcb8 in gloox::Parser::feed(std::string&) () from /usr/lib64/libgloox.so.13 No symbol table info available. #10 0x00007ffff4900aad in gloox::ClientBase::parse(std::string const&) () from /usr/lib64/libgloox.so.13 No symbol table info available. #11 0x00007ffff49726de in gloox::GnuTLSBase::decrypt(std::string const&) () from /usr/lib64/libgloox.so.13 No symbol table info available. #12 0x00007ffff48fcb7e in gloox::ConnectionTCPClient::recv(int) () from /usr/lib64/libgloox.so.13 No symbol table info available. #13 0x000000000043d4ee in Frame () at ../../../source/main.cpp:403 profile2__ = {m_Name = 0xb2aaf8 "frame"} time = <optimized out> realTimeSinceLastFrame = 0.0330168754 __func__ = "Frame" need_update = false
  5. I've tried this command: break StanzaExtensions .cpp:129 if tag This error occur when tag = 0. <- Sorry... Not right... tag=0x3ade4c0 maybe tag->xmlns() is breaking when not defined?
  6. I've double checked. This error occur if user is not registered. I can register with gloox 1.0.22. Then I can enter lobby. Right after, I am still getting segmentation fault. But now is a different one: Thread 1 (Thread 0x7ffff7f87b80 (LWP 23818)): #0 0x00007ffff490b7a0 in gloox::Tag::xmlns(std::string const&) const () from /usr/lib64/libgloox.so.13 No symbol table info available. #1 0x00007ffff490c33d in gloox::Tag::xmlns() const () from /usr/lib64/libgloox.so.13 No symbol table info available. #2 0x0000000000a916f7 in glooxwrapper::Tag::xmlns (this=this@entry=0x27a2a90) at ../../../source/lobby/glooxwrapper/glooxwrapper.cpp:735 No locals. #3 0x0000000000a8bc3c in GameListQuery::GameListQuery (this=0x27a23f0, tag=0x27a2a90) at ../../../source/lobby/StanzaExtensions.cpp:129 c = <optimized out> #4 0x0000000000a8c985 in GameListQuery::newInstance (this=<optimized out>, tag=0x27a2a90) at ../../../source/lobby/StanzaExtensions.h:67 No locals. #5 0x0000000000a95e17 in glooxwrapper::StanzaExtensionWrapper::newInstance (this=0x4329150, tag=0x408c7a0) at ../../../source/lobby/glooxwrapper/glooxwrapper.cpp:257 tagWrapper = 0x27a2a90 ret = <optimized out> #6 0x00007ffff496c4be in gloox::StanzaExtensionFactory::addExtensions(gloox::Stanza&, gloox::Tag*) () from /usr/lib64/libgloox.so.13 No symbol table info available. #7 0x00007ffff49064b6 in gloox::ClientBase::handleTag(gloox::Tag*) () from /usr/lib64/libgloox.so.13 No symbol table info available. #8 0x00007ffff48faa72 in gloox::Parser::closeTag() () from /usr/lib64/libgloox.so.13 No symbol table info available. #9 0x00007ffff48fbcb8 in gloox::Parser::feed(std::string&) () from /usr/lib64/libgloox.so.13 No symbol table info available. #10 0x00007ffff4900aad in gloox::ClientBase::parse(std::string const&) () from /usr/lib64/libgloox.so.13 No symbol table info available. #11 0x00007ffff49726de in gloox::GnuTLSBase::decrypt(std::string const&) () from /usr/lib64/libgloox.so.13 No symbol table info available. #12 0x00007ffff48fcb7e in gloox::ConnectionTCPClient::recv(int) () from /usr/lib64/libgloox.so.13 No symbol table info available. #13 0x000000000043d4ee in Frame () at ../../../source/main.cpp:403 profile2__ = {m_Name = 0xb2aaf8 "frame"} time = <optimized out> realTimeSinceLastFrame = 0.033053346 __func__ = "Frame" need_update = false
  7. First once I've tried on register, in 1.013. Since crashed, I don't know if my user is registered. All others at login, first backtrace in 1.0.13 and second in 1.022 gloox.
  8. An wise advice! I was doing that right now! But I only upgrade gloox, as I've deleted my sandbox already. Now the error is invalid pointer, in gdb signal is SIGABRT. Thread 1 (Thread 0x7ffff7f87b80 (LWP 23198)): #0 0x00007ffff34443f8 in raise () from /lib64/libc.so.6 No symbol table info available. #1 0x00007ffff3445ffa in abort () from /lib64/libc.so.6 No symbol table info available. #2 0x00007ffff34866f9 in __libc_message () from /lib64/libc.so.6 No symbol table info available. #3 0x00007ffff348ef4a in _int_free () from /lib64/libc.so.6 No symbol table info available. #4 0x00007ffff3492c1c in free () from /lib64/libc.so.6 No symbol table info available. #5 0x00007ffff4902ba4 in gloox::ClientBase::~ClientBase() () from /usr/lib64/libgloox.so.13 No symbol table info available. #6 0x00007ffff491b0a3 in gloox::Client::~Client() () from /usr/lib64/libgloox.so.13 No symbol table info available. #7 0x00007ffff491b1d9 in gloox::Client::~Client() () from /usr/lib64/libgloox.so.13 No symbol table info available. #8 0x0000000000a8d181 in glooxwrapper::Client::~Client (this=0x409e380, __in_chrg=<optimized out>) at ../../../source/lobby/glooxwrapper/glooxwrapper.cpp:330 No locals. #9 0x0000000000a7b713 in XmppClient::~XmppClient (this=0x4317bf0, __in_chrg=<optimized out>) at ../../../source/lobby/XmppClient.cpp:167 No locals. #10 0x0000000000a7c0a0 in XmppClient::~XmppClient (this=0x4317bf0, __in_chrg=<optimized out>) at ../../../source/lobby/XmppClient.cpp:175 No locals. #11 0x0000000000a7402b in JSI_Lobby::StopXmppClient () at ../../../source/lobby/scripting/JSInterface_Lobby.cpp:112 No locals. #12 ScriptInterface_NativeWrapper<void>::call<void (ScriptInterface::CxPrivate*)>(JSContext*, JS::MutableHandle<JS::Value>, void (ScriptInterface::CxPrivate*)) ( fptr=<optimized out>, cx=0x27765c0) at ../../../source/scriptinterface/NativeWrapperDefns.h:86 No locals. #13 ScriptInterface::call<void, &JSI_Lobby::StopXmppClient> (cx=0x27765c0, argc=<optimized out>, vp=0x1097040) at ../../../source/scriptinterface/NativeWrapperDefns.h:125 args = <optimized out> rq = {mContext = 0x27765c0} rval = {<js::RootedBase<JS::Value>> = {<js::MutableValueOperations<JS::Rooted<JS::Value> >> = {<js::ValueOperations<JS::Rooted<JS::Value> >> = {<No data fields>}, <No data fields>}, <No data fields>}, stack = 0x2776628, prev = 0x7fffffffba70, ptr = {data = {asBits = 18444773748872577024, debugView = {payload47 = 0, tag = JSVAL_TAG_UNDEFINED}, s = {payload = {i32 = 0, u32 = 0, why = JS_ELEMENTS_HOLE}}, asDouble = -nan(0x9000000000000), asPtr = 0xfff9000000000000, asWord = 18444773748872577024, asUIntPtr = 18444773748872577024}}} #14 0x00007ffff6e9e0c0 in js::CallJSNative (args=..., native=<optimized out>, cx=0x27765c0) at /home/weberkai/0ad-0.0.23b-alpha/libraries/source/spidermonkey/mozjs-38.0.0/js/src/jscntxtinlines.h:226 No locals. #15 js::Invoke (cx=0x27765c0, args=..., construct=<optimized out>) at /home/weberkai/0ad-0.0.23b-alpha/libraries/source/spidermonkey/mozjs-38.0.0/js/src/vm/Interpreter.cpp:498 gcIfRequested = {runtime = 0xfdb800} initial = <optimized out> state = {<js::RunState> = {_vptr.RunState = 0x27765e0, kind_ = (unknown: 4294949808), script_ = {<js::RootedBase<JSScript*>> = {<No data fields>}, stack = 0x7fff6f652f90, prev = 0x7ffff3fe228f <std::string::replace(unsigned long, unsigned long, char const*, unsigned long)+111>, ptr = 0x27765f0}}, args_ = @0x0, initial_ = (js::INITIAL_CONSTRUCT | unknown: 1869216480), createSingleton_ = 255} ok = <optimized out> #16 0x00007ffff6e92e3d in Interpret (cx=0x27765c0, state=...) at /home/weberkai/0ad-0.0.23b-alpha/libraries/source/spidermonkey/mozjs-38.0.0/js/src/vm/Interpreter.cpp:2602 createSingleton = false ---Type <return> to continue, or q <return> to quit---
  9. Or, maybe it could be this? The problem gloox isn't return anything upon a handleTls call and then crash. https://git.kaidan.im/kaidan/kaidan/commit/fb10738fca1960c120b5d4837d24622b1752cbd1
  10. Thread 1 (Thread 0x7ffff7f87b80 (LWP 3102)): #0 0x00007fffebaa0094 in ?? () from /usr/lib64/../lib64/libgnutls.so.30 No symbol table info available. #1 0x00007fffebaa11d4 in ?? () from /usr/lib64/../lib64/libgnutls.so.30 No symbol table info available. #2 0x00007fffebaa18ad in gnutls_x509_crt_verify () from /usr/lib64/../lib64/libgnutls.so.30 No symbol table info available. #3 0x00007ffff4971d2c in gloox::GnuTLSClient::verifyAgainstCAs(gnutls_x509_crt_int*, gnutls_x509_crt_int**, int) () from /usr/lib64/libgloox.so.13 No symbol table info available. #4 0x00007ffff4971e5d in gloox::GnuTLSClient::getCertInfo() () from /usr/lib64/libgloox.so.13 No symbol table info available. #5 0x00007ffff49746e5 in gloox::GnuTLSBase::handshake() () from /usr/lib64/libgloox.so.13 No symbol table info available. #6 0x00007ffff4974859 in gloox::GnuTLSBase::decrypt(std::string const&) () from /usr/lib64/libgloox.so.13 No symbol table info available. #7 0x00007ffff48ff72b in gloox::ConnectionTCPClient::recv(int) () from /usr/lib64/libgloox.so.13 No symbol table info available. #8 0x000000000043d4ee in Frame () at ../../../source/main.cpp:403 profile2__ = {m_Name = 0xb2aaf8 "frame"} time = <optimized out> realTimeSinceLastFrame = 0.0329228155 __func__ = "Frame" need_update = true I think calling gloox recv() is returning bigger message than allowed oe no message at all. Maybe the server is sending a bigger message or maybe it is filling an input buffer downsized allocated https://stackoverflow.com/questions/3632861/segmentation-fault-on-recv Maybe the server is not sending any message, or maybe the routine is doing just tls handshake with no message.
  11. My solution is more like "Proof of Concept", not a definitive optimized solution, as I am not a very experienced coder. I prefer to wait for the outcomes from 'audit' first rather than to send an 'ugly' solution, as I believe the coder staff can provide a much better one. Well... Unless this 'audit' option is not really for real usage... But if this, I think someone will answer that very clear. And then I will post a diff as you pointed out. I've edited https://code.wildfiregames.com/rP19674 and added that I can send this diff anyway, if ok. Thanks!
  12. https://code.wildfiregames.com/rP19674
  13. Hi @Angen! Reading that page, I think 'audit' is the way to go! I will sign up, search that commit and try to post an 'audit' first. Thank you very much!
  14. Hi, fellows! I am glad to help, and I'm sorry I wasn't that clear... You have to edit source/ps/GameSetup/VisualReplay.cpp . You have to 'cut' these 2 lines: static OsPath tempCacheFileName = VisualReplay::GetDirectoryName() / L"replayCache_temp.json"; static OsPath cacheFileName = VisualReplay::GetDirectoryName() / L"replayCache.json"; Then 'paste' them twice... One inside this function: bool VisualReplay::ReadCacheFile(const ScriptInterface& scriptInterface, JS::MutableHandleObject cachedReplaysObject) And another inside this function: void VisualReplay::StoreCacheFile(const ScriptInterface& scriptInterface, JS::HandleObject replays) Paste them just after the opening '{'. This way we are changing the scope of these variables, the same way they were back at version 0.0.21. In 0.0.23 they are globals, and are created before the execution, but g_args is still not filled. After these changes, they will be created only upon function call, after g_args was filled. I've tried to comment at the bug tracker, but I haven't permission. Maybe I will have to become a developer to send a solution. But maybe @andy5995 could manage this for us? Please, Andy, may you help us? Thank you very much!
  15. Hi! During variable creation, tempCacheFileName is created at VisualReplay.cpp (and also cacheFileName): static const OsPath tempCacheFileName = VisualReplay::GetDirectoryName() / L"replayCache_temp.json"; which calls GetDirectoryName which uses global variable g_args: const Paths paths(g_args); But in main.cpp g_args are filled at function RunGameOrAtlas during runtime, after variable creation: g_args = args; Using global g_args early at variable creation while it is not filled yet is causing segmentation fault in Slackware. Don't know why in other distros this won't happen (maybe newer stdlib version... Or different default compiler options... I've tried with g++ 5.3.0). In previous working version 0.0.21, VisualReplay.cpp uses GetDirectoryName only in runtime. That's why there is no error. Just moved these at VisualReplay.cpp to inside VisualReplay::ReadCacheFile and VisualReplay::StoreCacheFile and now its working: static OsPath tempCacheFileName = VisualReplay::GetDirectoryName() / L"replayCache_temp.json"; static OsPath cacheFileName = VisualReplay::GetDirectoryName() / L"replayCache.json"; Maybe a better coder could provide a better solution. This solves https://trac.wildfiregames.com/ticket/4789
×
×
  • Create New...