Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

COutputStreamBuffer::overflow during PHYSFS_writeBytes () while game tries to do screenshot for save #1613

Open
lena64t opened this issue Sep 18, 2023 · 1 comment

Comments

@lena64t
Copy link

lena64t commented Sep 18, 2023

Custom compilation based on dev as for today. 15 LeggedGrabbers using synchronization on Volcano.

(No it's not run in docker. It's a 'leftover' after experiments)

#0  0x00007ffff7af7d11 in PHYSFS_writeBytes () from /usr/lib/libphysfs.so.1
#1  0x00005555555e9066 in COutputStreamBuffer::overflow (this=0x7fffc4ffeb38, ch=131) at /home/lena64t/workbench/docker/colobot/colobot-src/colobot-base/common/resources/outputstreambuffer.cpp:81
#2  0x00007ffff7557eab in std::basic_streambuf<char, std::char_traits<char> >::xsputn (this=0x7fffc4ffeb38, __s=<optimized out>, __n=8192) at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/streambuf.tcc:98
#3  0x00007ffff7548167 in std::basic_streambuf<char, std::char_traits<char> >::sputn (__n=8192, __s=0x7fffa4012458 "a$\240N\0300\005G\302ܲ(\202\200W\352\vx\340\251\344\321f\304r{9O\231\023I\242\203@T\301\203,\223$\001\232ʧ\027\260+", this=<optimized out>)
    at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/streambuf:457
#4  std::basic_ostream<char, std::char_traits<char> >::write (this=0x7fffc4ffeb30, __s=0x7fffa4012458 "a$\240N\0300\005G\302ܲ(\202\200W\352\vx\340\251\344\321f\304r{9O\231\023I\242\203@T\301\203,\223$\001\232ʧ\027\260+", __n=8192)
    at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/ostream.tcc:203
#5  0x000055555584f5d3 in operator() (__closure=0x0, pngPtr=0x7fffa4001c60, data=0x7fffa4012458 "a$\240N\0300\005G\302ܲ(\202\200W\352\vx\340\251\344\321f\304r{9O\231\023I\242\203@T\301\203,\223$\001\232ʧ\027\260+", length=8192)
    at /home/lena64t/workbench/docker/colobot/colobot-src/colobot-base/common/image.cpp:131
#6  0x000055555584f603 in _FUN () at /home/lena64t/workbench/docker/colobot/colobot-src/colobot-base/common/image.cpp:132
#7  0x00007ffff7c37a39 in png_write_chunk_data () from /usr/lib/libpng16.so.16
#8  0x00007ffff7c3c414 in ?? () from /usr/lib/libpng16.so.16
#9  0x00007ffff7c3cd9d in png_write_row () from /usr/lib/libpng16.so.16
#10 0x00007ffff7c3e251 in png_write_image () from /usr/lib/libpng16.so.16
#11 0x000055555584fb13 in (anonymous namespace)::PNGSaveSurface (filename=0x7fffa4000b70 "savegame/Lena/autosave230918053105/screen.png", surf=0x55555a9591e0) at /home/lena64t/workbench/docker/colobot/colobot-src/colobot-base/common/image.cpp:151
#12 0x0000555555850cb4 in CImage::SavePNG (this=0x55555a18cf30, fileName="savegame/Lena/autosave230918053105/screen.png") at /home/lena64t/workbench/docker/colobot/colobot-src/colobot-base/common/image.cpp:435
#13 0x000055555561e467 in Gfx::CEngine::WriteScreenShotThread (data=std::unique_ptr<Gfx::CEngine::WriteScreenShotData> = {...}) at /home/lena64t/workbench/docker/colobot/colobot-src/colobot-base/graphics/engine/engine.cpp:571
#14 0x00005555556598ae in std::__invoke_impl<void, void (*)(std::unique_ptr<Gfx::CEngine::WriteScreenShotData, std::default_delete<Gfx::CEngine::WriteScreenShotData> >), std::unique_ptr<Gfx::CEngine::WriteScreenShotData, std::default_delete<Gfx::CEngine::WriteScreenShotData> > > (
    __f=@0x55555bc0fb30: 0x55555561e3de <Gfx::CEngine::WriteScreenShotThread(std::unique_ptr<Gfx::CEngine::WriteScreenShotData, std::default_delete<Gfx::CEngine::WriteScreenShotData> >)>) at /usr/include/c++/13.2.1/bits/invoke.h:61
#15 0x000055555565981d in std::__invoke<void (*)(std::unique_ptr<Gfx::CEngine::WriteScreenShotData, std::default_delete<Gfx::CEngine::WriteScreenShotData> >), std::unique_ptr<Gfx::CEngine::WriteScreenShotData, std::default_delete<Gfx::CEngine::WriteScreenShotData> > > (
    __fn=@0x55555bc0fb30: 0x55555561e3de <Gfx::CEngine::WriteScreenShotThread(std::unique_ptr<Gfx::CEngine::WriteScreenShotData, std::default_delete<Gfx::CEngine::WriteScreenShotData> >)>) at /usr/include/c++/13.2.1/bits/invoke.h:96
#16 0x000055555565978d in std::thread::_Invoker<std::tuple<void (*)(std::unique_ptr<Gfx::CEngine::WriteScreenShotData, std::default_delete<Gfx::CEngine::WriteScreenShotData> >), std::unique_ptr<Gfx::CEngine::WriteScreenShotData, std::default_delete<Gfx::CEngine::WriteScreenShotData> > > >::_M_invoke<0ul, 1ul> (this=0x55555bc0fb28) at /usr/include/c++/13.2.1/bits/std_thread.h:292
#17 0x0000555555659746 in std::thread::_Invoker<std::tuple<void (*)(std::unique_ptr<Gfx::CEngine::WriteScreenShotData, std::default_delete<Gfx::CEngine::WriteScreenShotData> >), std::unique_ptr<Gfx::CEngine::WriteScreenShotData, std::default_delete<Gfx::CEngine::WriteScreenShotData> > > >::operator() (this=0x55555bc0fb28) at /usr/include/c++/13.2.1/bits/std_thread.h:299
#18 0x000055555565972a in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::unique_ptr<Gfx::CEngine::WriteScreenShotData, std::default_delete<Gfx::CEngine::WriteScreenShotData> >), std::unique_ptr<Gfx::CEngine::WriteScreenShotData, std::default_delete<Gfx::CEngine::WriteScreenShotData> > > > >::_M_run (this=0x55555bc0fb20) at /usr/include/c++/13.2.1/bits/std_thread.h:244
#19 0x00007ffff74e1943 in std::execute_native_thread_routine (__p=0x55555bc0fb20) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104
#20 0x00007ffff708c9eb in ?? () from /usr/lib/libc.so.6
#21 0x00007ffff7110dfc in ?? () from /usr/lib/libc.so.6

Loaded libs:

❯ ldd colobot
	linux-vdso.so.1 (0x00007ffd368f7000)
	libCBot.so => /tmp/games/lib/colobot/libCBot.so (0x00007f67b658c000)
	libColobot-Common.so => /tmp/games/lib/colobot/libColobot-Common.so (0x00007f67b657c000)
	libSDL2_image-2.0.so.0 => /usr/lib/libSDL2_image-2.0.so.0 (0x00007f67b651b000)
	libSDL2_ttf-2.0.so.0 => /usr/lib/libSDL2_ttf-2.0.so.0 (0x00007f67b63b6000)
	libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007f67b6384000)
	libOpenGL.so.0 => /usr/lib/libOpenGL.so.0 (0x00007f67b6359000)
	libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007f67b631d000)
	libz.so.1 => /usr/lib/libz.so.1 (0x00007f67b6303000)
	libGLEW.so.2.2 => /usr/lib/libGLEW.so.2.2 (0x00007f67b6224000)
	libphysfs.so.1 => /usr/lib/libphysfs.so.1 (0x00007f67b61f5000)
	libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x00007f67b616e000)
	libopenal.so.1 => /usr/lib/libopenal.so.1 (0x00007f67b5fd9000)
	libSDL2-2.0.so.0 => /usr/lib/libSDL2-2.0.so.0 (0x00007f67b5dfd000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f67b5a00000)
	libm.so.6 => /usr/lib/libm.so.6 (0x00007f67b5d10000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f67b5ceb000)
	libc.so.6 => /usr/lib/libc.so.6 (0x00007f67b5600000)
	libjxl.so.0.8 => /usr/lib/libjxl.so.0.8 (0x00007f67b5200000)
	libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0x00007f67b5954000)
	libtiff.so.6 => /usr/lib/libtiff.so.6 (0x00007f67b58c6000)
	libwebp.so.7 => /usr/lib/libwebp.so.7 (0x00007f67b5c7b000)
	libsharpyuv.so.0 => /usr/lib/libsharpyuv.so.0 (0x00007f67b58be000)
	libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007f67b5148000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f67b5005000)
	libEGL.so.1 => /usr/lib/libEGL.so.1 (0x00007f67b58aa000)
	libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f67b4f7f000)
	libogg.so.0 => /usr/lib/libogg.so.0 (0x00007f67b589f000)
	libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007f67b4ed4000)
	libFLAC.so.12 => /usr/lib/libFLAC.so.12 (0x00007f67b5859000)
	libopus.so.0 => /usr/lib/libopus.so.0 (0x00007f67b4e76000)
	libmpg123.so.0 => /usr/lib/libmpg123.so.0 (0x00007f67b4e19000)
	libmp3lame.so.0 => /usr/lib/libmp3lame.so.0 (0x00007f67b4da1000)
	libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007f67b4d73000)
	/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f67b6c8c000)
	libhwy.so.1 => /usr/lib/libhwy.so.1 (0x00007f67b55f5000)
	libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x00007f67b55e7000)
	libbrotlienc.so.1 => /usr/lib/libbrotlienc.so.1 (0x00007f67b4ccf000)
	libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007f67b4bfc000)
	liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007f67b4bc9000)
	libjbig.so.2.1 => /usr/lib/libjbig.so.2.1 (0x00007f67b55da000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f67b4b9e000)
	libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x00007f67b4b7b000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f67b584e000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f67b4b73000)
@melex750
Copy link
Contributor

I'm just curious if you can reproduce this at a lower resolution or different aspect ratio.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants