2019-08-22 00:47 CEST

View Issue Details Jump to Notes ] Related Changesets ]
IDProjectCategoryView StatusLast Update
0006105Spring engineGeneralpublic2018-12-22 21:08
Reportergajop 
Assigned ToKloot 
PrioritynormalSeverityminorReproducibilityrandom
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0006105: Double lock in Bitmap.cpp -> watchdog freeze
DescriptionI have a deadlock in:
    uint8_t* Alloc(size_t size) {
        std::lock_guard<spring::mutex> lck(bmpMutex);
        return (AllocRaw(size));
    }

This happens once the bitmap fails to load, as we are trying to reaquire the lock we already acquired in 484


CBitmap:Load:484
        std::lock_guard<spring::mutex> lck(texMemPool.GetMutex());

        ilOriginFunc(IL_ORIGIN_UPPER_LEFT);
        ilEnable(IL_ORIGIN_SET);

        ILuint imageID = 0;
        ilGenImages(1, &imageID);
        ilBindImage(imageID);

        {
            // do not signal floating point exceptions in devil library
            ScopedDisableFpuExceptions fe;

            const bool success = !!ilLoadL(IL_TYPE_UNKNOWN, buffer.data(), buffer.size());

            // FPU control word has to be restored as well
            streflop::streflop_init<streflop::Simple>();

            ilDisable(IL_ORIGIN_SET);

            if (!success) {
/* Stuck here*/ AllocDummy();
                return false;
            }
        }

PS: The callstack is attached, thread 1 (main) seems relevant.
Steps To ReproduceDifficult to reproduce (at least before reading the code).

Happened when I was adding some bitmap to SB assets, and probably also a few days ago when I was reloading images that weren't written to disk (assuming ilLoadL failed then, and it went through the same code path - didn't debug)
TagsNo tags attached.
Checked infolog.txt for lua Errors
Attached Files
  • txt file icon callstack.txt (29,484 bytes) 2018-12-22 06:44 -
    =thread-group-added,id="i1"
    GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
    Copyright (C) 2018 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-linux-gnu".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>.
    Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.
    For help, type "help".
    Type "apropos word" to search for commands related to "word".
    Warning: Debuggee TargetArchitecture not detected, assuming x86_64.
    =cmd-param-changed,param="pagination",value="off"
    Stopped due to shared library event (no libraries added or removed)
    Loaded '/lib64/ld-linux-x86-64.so.2'. Symbols loaded.
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
    
    Breakpoint 1, main (argc=1, argv=0x7fffffffdca8) at ../rts/System/Main.cpp:76
    76	{
    [New Thread 0x7fffc00d0700 (LWP 2391)]
    [Thread 0x7fffc00d0700 (LWP 2391) exited]
    [New Thread 0x7fffc00d0700 (LWP 2392)]
    [New Thread 0x7fffbf8cf700 (LWP 2394)]
    [New Thread 0x7fffbf0ce700 (LWP 2399)]
    [New Thread 0x7fffbe8cd700 (LWP 2400)]
    [New Thread 0x7fffbe0cc700 (LWP 2403)]
    [New Thread 0x7fffbd8cb700 (LWP 2407)]
    [New Thread 0x7fffbd88a700 (LWP 2411)]
    [New Thread 0x7fffbce16700 (LWP 2418)]
    [Thread 0x7fffbce16700 (LWP 2418) exited]
    [New Thread 0x7fffbcd95700 (LWP 2420)]
    [Thread 0x7fffbcd95700 (LWP 2420) exited]
    [New Thread 0x7fffbcd95700 (LWP 2446)]
    [Thread 0x7fffbcd95700 (LWP 2446) exited]
    
    Thread 1 "spring-main" hit Breakpoint 2, CGameSetup::Init (this=this@entry=0x7fffb8236550, buf="[game]\n{\n[team1]\n{\nteamleader=1;\nallyteam=1;\n}\n[allyteam1]\n{\nnumallies=0;\n}\n[modoptions]\n{\nmaxspeed=20;\n}\n[team0]\n{\nteamleader=0;\nallyteam=0;\n}\n[allyteam0]\n{\nnumallies=0;\n}\n[player1]\n{\nteam=1;\nname=En"...) at ../rts/Game/GameSetup.cpp:535
    535		TdfParser file(buf.c_str(), buf.size());
    Loaded '/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libpthread.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libGL.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libGLU.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libGLEW.so.2.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libfontconfig.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libfreetype.so.6'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libXcursor.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libX11.so.6'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libdl.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libIL.so.1'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libz.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libunwind.so.8'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libvorbisfile.so.3'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libopenal.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libcurl.so.4'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libstdc++.so.6'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libm.so.6'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libgcc_s.so.1'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libc.so.6'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libasound.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libpulse.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libsndio.so.6.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libXext.so.6'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libXinerama.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libXi.so.6'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libXrandr.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libXss.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libXxf86vm.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libwayland-egl.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libwayland-client.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libxkbcommon.so.0'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/librt.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libGLX.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libGLdispatch.so.0'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libexpat.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libpng16.so.16'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libXrender.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libXfixes.so.3'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libxcb.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libtiff.so.5'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libmng.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/liblcms2.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libjpeg.so.8'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/liblzma.so.5'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libvorbis.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libogg.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libnghttp2.so.14'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libidn2.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/librtmp.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libpsl.so.5'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libssl.so.1.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/liblber-2.4.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-11.1.so'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libdbus-1.so.3'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libbsd.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libffi.so.6'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libXau.so.6'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libXdmcp.so.6'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libjbig.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libunistring.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libgnutls.so.30'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libhogweed.so.4'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libnettle.so.6'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libgmp.so.10'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libkrb5.so.3'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libk5crypto.so.3'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libcom_err.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libkrb5support.so.0'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libresolv.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libsasl2.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libgssapi.so.3'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libsystemd.so.0'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libwrap.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libsndfile.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libasyncns.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libp11-kit.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libtasn1.so.6'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libkeyutils.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libheimntlm.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libkrb5.so.26'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libasn1.so.8'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libhcrypto.so.4'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libroken.so.18'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/liblz4.so.1'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libgcrypt.so.20'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libnsl.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libFLAC.so.8'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libvorbisenc.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libwind.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libheimbase.so.1'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libhx509.so.5'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libsqlite3.so.0'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libcrypt.so.1'. Symbols loaded.
    Loaded '/lib/x86_64-linux-gnu/libgpg-error.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.0'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/tls/libnvidia-tls.so.396.54'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.396.54'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libdrm.so.2'. Symbols loaded.
    Loaded '/usr/lib/x86_64-linux-gnu/libjack.so.0'. Symbols loaded.
    Execute debugger commands using "-exec <command>", for example "-exec info registers" will list registers in use (when GDB is the debugger)
    [Switching to thread 9 (Thread 0x7fffbd88a700 (LWP 2411))](running)
    =thread-selected,id="9"
    
    Thread 1 "spring-main" hit Breakpoint 3, CGameSetup::Init (this=this@entry=0x7fffb8236550, buf="[game]\n{\n[team1]\n{\nteamleader=1;\nallyteam=1;\n}\n[allyteam1]\n{\nnumallies=0;\n}\n[modoptions]\n{\nmaxspeed=20;\n}\n[team0]\n{\nteamleader=0;\nallyteam=0;\n}\n[allyteam0]\n{\nnumallies=0;\n}\n[player1]\n{\nteam=1;\nname=En"...) at ../rts/Game/GameSetup.cpp:606
    606		if (file.SectionExist("GAME\\MapOptions")) { mapOptions = file.GetAllValues("GAME\\MapOptions"); }
    [Switching to thread 9 (Thread 0x7fffbd88a700 (LWP 2411))](running)
    =thread-selected,id="9"
    [New Thread 0x7fffbcd95700 (LWP 2497)]
    [New Thread 0x7fff73fda700 (LWP 2498)]
    [Thread 0x7fff73fda700 (LWP 2498) exited]
    [Thread 0x7fffbf0ce700 (LWP 2399) exited]
    [Thread 0x7fffc00d0700 (LWP 2392) exited]
    [Thread 0x7fffbf8cf700 (LWP 2394) exited]
    [Thread 0x7fffbe8cd700 (LWP 2400) exited]
    [New Thread 0x7fffbf8cf700 (LWP 2503)]
    [New Thread 0x7fffc00d0700 (LWP 2504)]
    [New Thread 0x7fffbe8cd700 (LWP 2505)]
    [New Thread 0x7fffbf0ce700 (LWP 2506)]
    [New Thread 0x7fff73fda700 (LWP 2507)]
    [Thread 0x7fff73fda700 (LWP 2507) exited]
    [Thread 0x7fffbd88a700 (LWP 2411) exited]
    [Thread 0x7fffbd8cb700 (LWP 2407) exited]
    [Thread 0x7fffbe0cc700 (LWP 2403) exited]
    [Thread 0x7fffbcd95700 (LWP 2497) exited]
    [New Thread 0x7fffbcd95700 (LWP 2509)]
    [New Thread 0x7fffbd8cb700 (LWP 2510)]
    [New Thread 0x7fffbe0cc700 (LWP 2511)]
    [New Thread 0x7fffbd88a700 (LWP 2512)]
    [Thread 0x7fffbd88a700 (LWP 2512) exited]
    [New Thread 0x7fffbd88a700 (LWP 2513)]
    [New Thread 0x7fff7ffff700 (LWP 2514)]
    [Thread 0x7fff7ffff700 (LWP 2514) exited]
    
    Thread 1 "spring-main" received signal SIGINT, Interrupt.
    syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
    
    thread apply all bt
    -var-create: unable to create variable object
    -exec thread apply all bt
    
    
    Thread 24 (Thread 0x7fffbd88a700 (LWP 2513)):
    #0  0x00007ffff7897c60 in __GI___nanosleep (requested_time=requested_time@entry=0x7fffbd879cc0, remaining=remaining@entry=0x7fffbd879cc0) at ../sysdeps/unix/sysv/linux/nanosleep.c:28
    #1  0x0000555555a8aad9 in std::this_thread::sleep_for<long, std::ratio<1l, 1000000000l> > (__rtime=...) at /usr/include/c++/7/thread:373
    #2  spring_time::sleep (this=this@entry=0x7fffbd879d00, forceThreadSleep=forceThreadSleep@entry=true) at ../rts/System/Misc/SpringTime.cpp:201
    #3  0x0000555555783aef in CGameServer::UpdateLoop (this=0x555599d15aa0) at ../rts/Net/GameServer.cpp:2646
    #4  0x00007ffff537057f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    #5  0x00007ffff788d6db in start_thread (arg=0x7fffbd88a700) at pthread_create.c:463
    #6  0x00007ffff4a2d88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 22 (Thread 0x7fffbe0cc700 (LWP 2511)):
    #0  0x00007ffff4a20cf6 in __GI_ppoll (fds=0x7fff6000cac0, nfds=3, timeout=<optimized out>, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39
    #1  0x00007ffff43d9e91 in pa_mainloop_poll () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
    #2  0x00007ffff43da4a0 in pa_mainloop_iterate () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
    #3  0x00007ffff7b659d7 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
    #4  0x00007ffff7ac5d5e in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
    #5  0x00007ffff7b0ccbc in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
    #6  0x00007ffff7b80d69 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
    #7  0x00007ffff788d6db in start_thread (arg=0x7fffbe0cc700) at pthread_create.c:463
    #8  0x00007ffff4a2d88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 21 (Thread 0x7fffbd8cb700 (LWP 2510)):
    #0  0x00007ffff4a20cf6 in __GI_ppoll (fds=0x7fff60001500, nfds=3, timeout=<optimized out>, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39
    #1  0x00007ffff43d9e91 in pa_mainloop_poll () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
    #2  0x00007ffff43da4a0 in pa_mainloop_iterate () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
    #3  0x00007ffff43da530 in pa_mainloop_run () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
    #4  0x00007ffff7b65baf in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
    #5  0x00007ffff7b0ccbc in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
    #6  0x00007ffff7b80d69 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
    #7  0x00007ffff788d6db in start_thread (arg=0x7fffbd8cb700) at pthread_create.c:463
    #8  0x00007ffff4a2d88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 20 (Thread 0x7fffbcd95700 (LWP 2509)):
    #0  0x00007ffff7897c60 in __GI___nanosleep (requested_time=requested_time@entry=0x7fffbcd84c70, remaining=remaining@entry=0x7fffbcd84c70) at ../sysdeps/unix/sysv/linux/nanosleep.c:28
    #1  0x0000555555b8a18d in std::this_thread::sleep_for<long, std::ratio<1l, 1000l> > (__rtime=...) at /usr/include/c++/7/thread:373
    #2  CSound::UpdateThread (this=0x55559761f220, cfgMaxSounds=<optimized out>) at ../rts/System/Sound/OpenAL/Sound.cpp:648
    #3  0x0000555555b2616e in std::function<void ()>::operator()() const (this=0x7fffbcd84d40) at /usr/include/c++/7/bits/std_function.h:706
    #4  Threading::ThreadStart(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*) (taskFunc=..., ppCtlsReturn=ppCtlsReturn@entry=0x0, tempCtls=tempCtls@entry=0x7fffffffc6a0) at ../rts/System/Platform/Linux/ThreadSupport.cpp:214
    #5  0x0000555555b25380 in std::__invoke_impl<void, void (*&)(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*), std::function<void ()>&, std::shared_ptr<Threading::ThreadControls>*&, Threading::ThreadControls*&>(std::__invoke_other, void (*&)(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*), std::function<void ()>&, std::shared_ptr<Threading::ThreadControls>*&, Threading::ThreadControls*&) (__f=<optimized out>) at /usr/include/c++/7/bits/invoke.h:60
    #6  std::__invoke<void (*&)(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*), std::function<void ()>&, std::shared_ptr<Threading::ThreadControls>*&, Threading::ThreadControls*&>(void (*&)(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*), std::function<void ()>&, std::shared_ptr<Threading::ThreadControls>*&, Threading::ThreadControls*&) (__fn=<optimized out>) at /usr/include/c++/7/bits/invoke.h:95
    #7  std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>::__call<void, , 0ul, 1ul, 2ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (__args=..., this=<optimized out>) at /usr/include/c++/7/functional:467
    #8  std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>::operator()<, void>() (this=<optimized out>) at /usr/include/c++/7/functional:551
    #9  std::__invoke_impl<void, std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>>(std::__invoke_other, std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>&&) (__f=...) at /usr/include/c++/7/bits/invoke.h:60
    #10 std::__invoke<std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>>(std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)>&&) (__fn=...) at /usr/include/c++/7/bits/invoke.h:95
    #11 std::thread::_Invoker<std::tuple<std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)> > >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=<optimized out>) at /usr/include/c++/7/thread:234
    #12 std::thread::_Invoker<std::tuple<std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)> > >::operator()() (this=<optimized out>) at /usr/include/c++/7/thread:243
    #13 std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::_Bind<void (*(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*))(std::function<void ()>, std::shared_ptr<Threading::ThreadControls>*, Threading::ThreadControls*)> > > >::_M_run() (this=<optimized out>) at /usr/include/c++/7/thread:186
    #14 0x00007ffff537057f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    #15 0x00007ffff788d6db in start_thread (arg=0x7fffbcd95700) at pthread_create.c:463
    #16 0x00007ffff4a2d88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 18 (Thread 0x7fffbf0ce700 (LWP 2506)):
    #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
    #1  0x0000555555b255f4 in linux_signal::wait_for (this=this@entry=0x555556218d1c <newTasksSignal+12>, t=..., t@entry=...) at ../rts/System/Platform/Linux/Futex.cpp:147
    #2  0x0000555555aadb30 in ThreadPool::WorkerLoop (tid=2, async=<optimized out>) at ../rts/System/Threading/ThreadPool.cpp:238
    #3  0x00007ffff537057f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    #4  0x00007ffff788d6db in start_thread (arg=0x7fffbf0ce700) at pthread_create.c:463
    #5  0x00007ffff4a2d88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 17 (Thread 0x7fffbe8cd700 (LWP 2505)):
    #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
    #1  0x0000555555b255f4 in linux_signal::wait_for (this=this@entry=0x555556218d10 <newTasksSignal>, t=..., t@entry=...) at ../rts/System/Platform/Linux/Futex.cpp:147
    #2  0x0000555555aadb30 in ThreadPool::WorkerLoop (tid=2, async=<optimized out>) at ../rts/System/Threading/ThreadPool.cpp:238
    #3  0x00007ffff537057f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    #4  0x00007ffff788d6db in start_thread (arg=0x7fffbe8cd700) at pthread_create.c:463
    #5  0x00007ffff4a2d88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 16 (Thread 0x7fffc00d0700 (LWP 2504)):
    #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
    #1  0x0000555555b255f4 in linux_signal::wait_for (this=this@entry=0x555556218d1c <newTasksSignal+12>, t=..., t@entry=...) at ../rts/System/Platform/Linux/Futex.cpp:147
    #2  0x0000555555aadb30 in ThreadPool::WorkerLoop (tid=1, async=<optimized out>) at ../rts/System/Threading/ThreadPool.cpp:238
    #3  0x00007ffff537057f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    #4  0x00007ffff788d6db in start_thread (arg=0x7fffc00d0700) at pthread_create.c:463
    #5  0x00007ffff4a2d88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 15 (Thread 0x7fffbf8cf700 (LWP 2503)):
    #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
    #1  0x0000555555b255f4 in linux_signal::wait_for (this=this@entry=0x555556218d10 <newTasksSignal>, t=..., t@entry=...) at ../rts/System/Platform/Linux/Futex.cpp:147
    #2  0x0000555555aadb30 in ThreadPool::WorkerLoop (tid=1, async=<optimized out>) at ../rts/System/Threading/ThreadPool.cpp:238
    #3  0x00007ffff537057f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    #4  0x00007ffff788d6db in start_thread (arg=0x7fffbf8cf700) at pthread_create.c:463
    #5  0x00007ffff4a2d88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    
    Thread 1 (Thread 0x7ffff7f9c880 (LWP 2377)):
    #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
    #1  0x0000555555b25467 in spring_futex::lock (this=this@entry=0x5555561bce50 <texMemPool+48>) at ../rts/System/Platform/Linux/Futex.cpp:32
    #2  0x00005555559f4b5f in std::lock_guard<spring_futex>::lock_guard (__m=..., this=<synthetic pointer>) at /usr/include/c++/7/bits/std_mutex.h:162
    #3  TexMemPool::Alloc (size=4, this=0x5555561bce20 <texMemPool>) at ../rts/Rendering/Textures/Bitmap.cpp:67
    #4  TexMemPool::AllocIdx (size=4, this=0x5555561bce20 <texMemPool>) at ../rts/Rendering/Textures/Bitmap.cpp:62
    #5  CBitmap::Alloc (this=this@entry=0x7fffffffcba0, w=w@entry=1, h=h@entry=1, c=c@entry=4) at ../rts/Rendering/Textures/Bitmap.cpp:389
    #6  0x00005555559f4f73 in CBitmap::AllocDummy (this=this@entry=0x7fffffffcba0, fill=fill@entry=...) at ../rts/Rendering/Textures/Bitmap.cpp:396
    #7  0x00005555559f8d1a in CBitmap::Load (this=this@entry=0x7fffffffcba0, filename="springboard/assets/core/detail/empty.bmp", defaultAlpha=defaultAlpha@entry=255 '\377') at ../rts/Rendering/Textures/Bitmap.cpp:505
    #8  0x00005555559ff7e3 in CNamedTextures::Load (texName=":clr88,88:springboard/assets/core/detail/empty.bmp", texID=477) at ../rts/Rendering/Textures/NamedTextures.cpp:208
    #9  0x00005555559fffcb in CNamedTextures::GenLoadTex (texName=":clr88,88:springboard/assets/core/detail/empty.bmp") at ../rts/Rendering/Textures/NamedTextures.cpp:281
    #10 0x0000555555a0065f in CNamedTextures::GetInfo (texName=":clr88,88:springboard/assets/core/detail/empty.bmp", forceLoad=forceLoad@entry=true, persist=<optimized out>, secondaryGLContext=<optimized out>) at ../rts/Rendering/Textures/NamedTextures.cpp:375
    #11 0x00005555557fb3ee in LuaOpenGLUtils::ParseTextureImage (L=L@entry=0x5555b2ba2d40, texUnit=..., image=":clr88,88:springboard/assets/core/detail/empty.bmp") at ../rts/Lua/LuaOpenGLUtils.cpp:454
    #12 0x00005555557f370c in LuaOpenGL::TextureInfo (L=0x5555b2ba2d40) at ../rts/Lua/LuaOpenGL.cpp:3244
    #13 0x0000555555bb9452 in luaD_precall (L=L@entry=0x5555b2ba2d40, func=func@entry=0x5555eb371ab0, nresults=nresults@entry=1) at ../rts/lib/lua/src/ldo.cpp:320
    #14 0x0000555555bc78fa in luaV_execute (L=L@entry=0x5555b2ba2d40, nexeccalls=28, nexeccalls@entry=1) at ../rts/lib/lua/src/lvm.cpp:613
    #15 0x0000555555bb979d in luaD_call (L=0x5555b2ba2d40, func=0x5555eb370f10, nResults=<optimized out>) at ../rts/lib/lua/src/ldo.cpp:378
    #16 0x0000555555bb8b5d in luaD_rawrunprotected (L=L@entry=0x5555b2ba2d40, f=f@entry=0x555555bb18a0 <f_call(lua_State*, void*)>, ud=ud@entry=0x7fffffffd0a0) at ../rts/lib/lua/src/ldo.cpp:116
    #17 0x0000555555bb993b in luaD_pcall (L=L@entry=0x5555b2ba2d40, func=func@entry=0x555555bb18a0 <f_call(lua_State*, void*)>, u=u@entry=0x7fffffffd0a0, old_top=624, ef=<optimized out>) at ../rts/lib/lua/src/ldo.cpp:464
    #18 0x0000555555bb30e9 in lua_pcall (L=L@entry=0x5555b2ba2d40, nargs=nargs@entry=0, nresults=nresults@entry=-1, errfunc=errfunc@entry=1) at ../rts/lib/lua/src/lapi.cpp:833
    #19 0x0000555555bb514c in luaB_xpcall (L=0x5555b2ba2d40) at ../rts/lib/lua/src/lbaselib.cpp:389
    #20 0x0000555555bb9452 in luaD_precall (L=L@entry=0x5555b2ba2d40, func=func@entry=0x5555eb370ef0, nresults=nresults@entry=-1) at ../rts/lib/lua/src/ldo.cpp:320
    #21 0x0000555555bc78fa in luaV_execute (L=L@entry=0x5555b2ba2d40, nexeccalls=2, nexeccalls@entry=1) at ../rts/lib/lua/src/lvm.cpp:613
    #22 0x0000555555bb979d in luaD_call (L=0x5555b2ba2d40, func=0x5555eb370e60, nResults=<optimized out>) at ../rts/lib/lua/src/ldo.cpp:378
    #23 0x0000555555bb8b5d in luaD_rawrunprotected (L=L@entry=0x5555b2ba2d40, f=f@entry=0x555555bb18a0 <f_call(lua_State*, void*)>, ud=ud@entry=0x7fffffffd2a0) at ../rts/lib/lua/src/ldo.cpp:116
    #24 0x0000555555bb993b in luaD_pcall (L=L@entry=0x5555b2ba2d40, func=func@entry=0x555555bb18a0 <f_call(lua_State*, void*)>, u=u@entry=0x7fffffffd2a0, old_top=448, ef=<optimized out>) at ../rts/lib/lua/src/ldo.cpp:464
    #25 0x0000555555bb30e9 in lua_pcall (L=L@entry=0x5555b2ba2d40, nargs=nargs@entry=0, nresults=nresults@entry=-1, errfunc=errfunc@entry=1) at ../rts/lib/lua/src/lapi.cpp:833
    #26 0x0000555555bb514c in luaB_xpcall (L=0x5555b2ba2d40) at ../rts/lib/lua/src/lbaselib.cpp:389
    #27 0x0000555555bb9452 in luaD_precall (L=L@entry=0x5555b2ba2d40, func=func@entry=0x5555eb370e40, nresults=nresults@entry=-1) at ../rts/lib/lua/src/ldo.cpp:320
    #28 0x0000555555bc78fa in luaV_execute (L=L@entry=0x5555b2ba2d40, nexeccalls=2, nexeccalls@entry=1) at ../rts/lib/lua/src/lvm.cpp:613
    #29 0x0000555555bb979d in luaD_call (L=0x5555b2ba2d40, func=0x5555eb370da0, nResults=<optimized out>) at ../rts/lib/lua/src/ldo.cpp:378
    #30 0x0000555555bb8b5d in luaD_rawrunprotected (L=L@entry=0x5555b2ba2d40, f=f@entry=0x555555bb18a0 <f_call(lua_State*, void*)>, ud=ud@entry=0x7fffffffd4a0) at ../rts/lib/lua/src/ldo.cpp:116
    #31 0x0000555555bb993b in luaD_pcall (L=L@entry=0x5555b2ba2d40, func=func@entry=0x555555bb18a0 <f_call(lua_State*, void*)>, u=u@entry=0x7fffffffd4a0, old_top=256, ef=<optimized out>) at ../rts/lib/lua/src/ldo.cpp:464
    #32 0x0000555555bb30e9 in lua_pcall (L=L@entry=0x5555b2ba2d40, nargs=<optimized out>, nresults=nresults@entry=-1, errfunc=errfunc@entry=0) at ../rts/lib/lua/src/lapi.cpp:833
    #33 0x0000555555bb50e8 in luaB_pcall (L=0x5555b2ba2d40) at ../rts/lib/lua/src/lbaselib.cpp:377
    #34 0x0000555555bb9452 in luaD_precall (L=L@entry=0x5555b2ba2d40, func=func@entry=0x5555eb370d90, nresults=nresults@entry=-1) at ../rts/lib/lua/src/ldo.cpp:320
    #35 0x0000555555bc78fa in luaV_execute (L=L@entry=0x5555b2ba2d40, nexeccalls=2, nexeccalls@entry=1) at ../rts/lib/lua/src/lvm.cpp:613
    #36 0x0000555555bb979d in luaD_call (L=0x5555b2ba2d40, func=0x5555eb370cb0, nResults=<optimized out>) at ../rts/lib/lua/src/ldo.cpp:378
    #37 0x0000555555bb8b5d in luaD_rawrunprotected (L=L@entry=0x5555b2ba2d40, f=f@entry=0x555555bb18a0 <f_call(lua_State*, void*)>, ud=ud@entry=0x7fffffffd6a0) at ../rts/lib/lua/src/ldo.cpp:116
    #38 0x0000555555bb993b in luaD_pcall (L=L@entry=0x5555b2ba2d40, func=func@entry=0x555555bb18a0 <f_call(lua_State*, void*)>, u=u@entry=0x7fffffffd6a0, old_top=16, ef=<optimized out>) at ../rts/lib/lua/src/ldo.cpp:464
    #39 0x0000555555bb30e9 in lua_pcall (L=L@entry=0x5555b2ba2d40, nargs=nargs@entry=2, nresults=nresults@entry=0, errfunc=errfunc@entry=0) at ../rts/lib/lua/src/lapi.cpp:833
    #40 0x00005555557be89a in CLuaHandle::ScopedLuaCall::ScopedLuaCall (_popErrFunc=false, _errFuncIdx=0, _nOutArgs=0, _nInArgs=2, func=0x5555560bd990 <CLuaHandle::DrawScreen()::cmdStr+16> "DrawScreen", state=0x5555b2ba2d40, handle=0x5555a5c79160, this=<synthetic pointer>) at ../rts/Lua/LuaHandle.cpp:327
    #41 CLuaHandle::RunCallInTraceback (this=this@entry=0x5555a5c79160, L=L@entry=0x5555b2ba2d40, hs=hs@entry=0x5555560bd980 <CLuaHandle::DrawScreen()::cmdStr>, ts=ts@entry=0x7fffffffd7b0, inArgs=inArgs@entry=2, outArgs=outArgs@entry=0, errFuncIndex=0, popErrorFunc=false) at ../rts/Lua/LuaHandle.cpp:413
    #42 0x00005555557bf067 in CLuaHandle::RunCallInTraceback (this=this@entry=0x5555a5c79160, L=0x5555b2ba2d40, hs=..., inArgs=inArgs@entry=2, outArgs=outArgs@entry=0, errFuncIndex=errFuncIndex@entry=0, popErrFunc=false) at ../rts/Lua/LuaHandle.cpp:423
    #43 0x00005555557cd4fc in CLuaHandle::RunCallIn (outArgs=0, inArgs=2, hs=..., L=<optimized out>, this=0x5555a5c79160) at ../rts/Lua/LuaHandle.h:351
    #44 CLuaHandle::DrawScreenCommon (cmdStr=..., this=0x5555a5c79160) at ../rts/Lua/LuaHandle.cpp:1809
    #45 CLuaHandle::DrawScreen (this=0x5555a5c79160) at ../rts/Lua/LuaHandle.cpp:1820
    #46 0x0000555555a65a78 in CEventHandler::DrawScreen (this=0x555556213720 <eventHandler>) at ../rts/System/EventHandler.cpp:623
    #47 0x0000555555673086 in CGame::DrawInputReceivers (this=this@entry=0x5555b8750700) at ../rts/Game/Game.cpp:1345
    #48 0x000055555567461e in CGame::Draw (this=0x5555b8750700) at ../rts/Game/Game.cpp:1302
    #49 0x0000555555a9c72a in SpringApp::Update (this=this@entry=0x7fffffffdad0) at ../rts/System/SpringApp.cpp:777
    #50 0x0000555555a9f488 in SpringApp::Run (this=0x7fffffffdad0) at ../rts/System/SpringApp.cpp:811
    #51 0x0000555555a86ae0 in Run (argc=1, argv=0x7fffffffdca8) at ../rts/System/Main.cpp:43
    #52 0x00005555556291fe in main (argc=1, argv=0x7fffffffdca8) at ../rts/System/Main.cpp:94
    
    
    
    txt file icon callstack.txt (29,484 bytes) 2018-12-22 06:44 +

-Relationships
+Relationships

-Notes

~0019624

Kloot (developer)

Fix 9bad771358008be73e8f6810ae0e4424504ae1ae committed to develop branch: fix 0006105
downgrade detailtex/infomap loading exceptions, repo: spring changeset id: 11260

~0019625

Kloot (developer)

Fix 262946915da5cb5945e6f9e507a13ed45890f66a committed to maintenance branch: fix 0006105
downgrade detailtex/infomap loading exceptions

Conflicts:
    rts/Rendering/Textures/Bitmap.cpp, repo: spring changeset id: 11261
+Notes

+Related Changesets

-Issue History
Date Modified Username Field Change
2018-12-22 06:44 gajop New Issue
2018-12-22 06:44 gajop File Added: callstack.txt
2018-12-22 13:38 Kloot Assigned To => Kloot
2018-12-22 13:38 Kloot Status new => assigned
2018-12-22 21:04 Kloot Changeset attached => spring develop 9bad7713
2018-12-22 21:04 Kloot Note Added: 0019624
2018-12-22 21:04 Kloot Status assigned => resolved
2018-12-22 21:04 Kloot Resolution open => fixed
2018-12-22 21:08 Kloot Changeset attached => spring maintenance 26294691
2018-12-22 21:08 Kloot Note Added: 0019625
+Issue History