Bug 384641 - Krita crashes a few seconds after startup
Summary: Krita crashes a few seconds after startup
Status: RESOLVED UPSTREAM
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: 3.2.1
Platform: Microsoft Windows Microsoft Windows
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-09-12 22:39 UTC by andrew.arv.spam
Modified: 2017-09-19 12:03 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description andrew.arv.spam 2017-09-12 22:39:42 UTC
Shortly after the splash screen finishes (usually withing 60 seconds), Krita crashes and Windows displays a dialog box stating "krita.exe has stopped working". This renders the application unusable. This was not happening with 3.2.0, it appears to be new in 3.2.1. =

Reproducible: Always

Steps to Reproduce:
Launch krita.exe and wait for splash screen to finish (then wait for a minute).

Actual Results:  
Krita crashes shortly after loading.

Expected Results:  
Krita should not crash.

System info:
OS: Windows 10 Home version 1607 (64 bit)
CPU: AMD FX-8150 (8 core)
GPU: nVidia GTX 1060 6GB
RAM: 16GB DDR3
Display driver: version 385.41
Comment 1 Alvin Wong 2017-09-13 02:45:45 UTC
Please get a backtrace by following https://docs.krita.org/Dr._Mingw_debugger

If possible, please also test 3.2.0 again
Comment 2 andrew.arv.spam 2017-09-13 02:52:57 UTC
(In reply to Alvin Wong from comment #1)
> Please get a backtrace by following https://docs.krita.org/Dr._Mingw_debugger
> 
> If possible, please also test 3.2.0 again

Ah, thanks, I was wondering if there was a log somewhere. I will try 3.2.0 again to confirm. Here's the error:

-------------------

Error occurred on Tuesday, September 12, 2017 at 18:33:20.

krita.exe caused an Access Violation at location 0000000061A0A362 in module Qt5Gui.dll Reading from location 0000000000000000.

AddrPC           Params
0000000061A0A362 000000001768E8E0 0000000000000000 000000001768E9F8  Qt5Gui.dll!QFontEngineMulti::addOutlineToPath
0000000061A343BD 0000000000600150 00007FF9D0887592 00000000167D9354  Qt5Gui.dll!QTextLine::draw
0000000061A34B09 0000000015EF4378 000000001768FB00 3FF0000000000000  Qt5Gui.dll!QTextLayout::draw
0000000067744F4C 0000000000000000 000000001768FB00 00000000121EE748  Qt5Svg.dll!QSvgText::draw
00000000677589CA 00000000000002A2 0000000017680000 0000000000000000  Qt5Svg.dll!QSvgG::draw
000000006775E0CF 0000000017B926F0 000000001768FE50 0000000000000000  Qt5Svg.dll!QSvgTinyDocument::draw
0000000006772632 0000000068D58409 0000000000000001 0000000000000004  qsvg.dll!qt_plugin_instance
00000000619B1756 0000000000000100 0000000017B926F0 0000000016395390  Qt5Gui.dll!QImageReader::autoTransform
00000000619B1FEF 0000000016395390 00000000619ABC1B 00000000160E7340  Qt5Gui.dll!QImageReader::read
00000000619B2085 000000006199B6D0 000000006199F7E0 00000000160E7340  Qt5Gui.dll!QImageReader::read
000000006199F778 0000000000000000 00000000161BFC80 0000000000000000  Qt5Gui.dll!QImage::load
00007FF98F8D7D58 00000000160E7340 000000001603E2E0 000000001162BDF0  kritaimagedocker.dll!ImageLoader::run
000000006889DB6C 000000000D395910 0000000000000000 0000000000000000  Qt5Core.dll!QThread::setTerminationEnabled
00007FF9CE7DB2BA 00007FF9CE830670 000000001162BDF0 0000000000000000  msvcrt.dll!_beginthreadex
00007FF9CE7DB38C 0000000000000000 0000000000000000 0000000000000000  msvcrt.dll!_endthreadex
00007FF9CDE68364 0000000000000000 0000000000000000 0000000000000000  KERNEL32.DLL!BaseThreadInitThunk
00007FF9D08D7091 0000000000000000 0000000000000000 0000000000000000  ntdll.dll!RtlUserThreadStart

krita.exe
ntdll.dll   	6.2.14393.1532
KERNEL32.DLL	6.2.14393.1198
aswhooka.dll	17.6.3.12852
KERNELBASE.dll	6.2.14393.1532
msvcrt.dll  	7.0.14393.0
libkritaui.dll
USER32.dll  	6.2.14393.576
win32u.dll  	6.2.14393.51
GDI32.dll   	6.2.14393.206
gdi32full.dll	6.2.14393.1358
libkritawidgetutils.dll
libKF5I18n.dll
Qt5Core.dll 	5.6.1.0
ADVAPI32.dll	6.2.14393.0
sechost.dll 	6.2.14393.0
RPCRT4.dll  	6.2.14393.82
ole32.dll   	6.2.14393.1378
combase.dll 	6.2.14393.1378
ucrtbase.dll	6.2.14393.0
bcryptPrimitives.dll	6.2.14393.0
SHELL32.dll 	6.2.14393.1593
cfgmgr32.dll	6.2.14393.0
windows.storage.dll	6.2.14393.1378
powrprof.dll	6.2.14393.0
shlwapi.dll 	6.2.14393.0
kernel.appcore.dll	6.2.14393.0
shcore.dll  	6.2.14393.953
profapi.dll 	6.2.14393.0
WS2_32.dll  	6.2.14393.206
Qt5Gui.dll  	5.6.1.0
Qt5Widgets.dll	5.6.1.0
libkritacolor.dll
libkritaflake.dll
libkritaglobal.dll
libkritaimage.dll
libkritalibbrush.dll
libkritaodf.dll
libkritapigment.dll
libkritaplugin.dll
libkritapsd.dll
libkritastore.dll
libkritaundo2.dll
libkritaversion.dll
libkritawidgets.dll
libexiv2.dll
PSAPI.DLL   	6.2.14393.0
libKF5Completion.dll
libKF5ConfigCore.dll
libKF5ConfigGui.dll
libKF5CoreAddons.dll
libKF5GuiAddons.dll
libKF5ItemViews.dll
libKF5WidgetsAddons.dll
Qt5Multimedia.dll	5.6.1.0
Qt5Network.dll	5.6.1.0
Qt5PrintSupport.dll	5.6.1.0
comdlg32.dll	6.2.14393.479
Qt5Xml.dll  	5.6.1.0
libHalf.dll
libpng16.dll
libKF5WindowSystem.dll
libintl.DLL 	0.18.0.0
MPR.dll     	6.2.14393.0
OPENGL32.dll	6.2.14393.0
Qt5Svg.dll  	5.6.1.0
libfftw3-3.dll
Qt5Concurrent.dll	5.6.1.0
libKF5Archive.dll
libexpat.dll
iconv.dll
libz.dll    	1.2.8.0
NETAPI32.dll	6.2.14393.0
USERENV.dll 	6.2.14393.0
DNSAPI.dll  	6.2.14393.1532
NSI.dll     	6.2.14393.0
IPHLPAPI.DLL	6.2.14393.953
COMCTL32.dll	5.82.14393.447
WINSPOOL.DRV	6.2.14393.1198
GLU32.dll   	6.2.14393.0
DDRAW.dll   	6.2.14393.953
bcrypt.dll  	6.2.14393.576
DCIMAN32.dll	6.2.14393.0
NETUTILS.DLL	6.2.14393.0
LOGONCLI.DLL	6.2.14393.0
SAMCLI.DLL  	6.2.14393.0
IMM32.DLL   	6.2.14393.0
qwindows.dll	5.6.1.0
OLEAUT32.dll	6.2.14393.1378
msvcp_win.dll	6.2.14393.0
WINMM.dll   	6.2.14393.0
WINMMBASE.dll	6.2.14393.0
uxtheme.dll 	6.2.14393.0
nvinject.dll	7.1.2250.7081
dwmapi.dll  	6.2.14393.206
nvoglv64.DLL	22.21.13.8541
SETUPAPI.dll	6.2.14393.0
WTSAPI32.dll	6.2.14393.0
VERSION.dll 	6.2.14393.0
DEVOBJ.dll  	6.2.14393.0
WINTRUST.dll	6.2.14393.953
MSASN1.dll  	6.2.14393.0
CRYPT32.dll 	6.2.14393.1198
ntmarta.dll 	6.2.14393.0
MSCTF.dll   	6.2.14393.953
nvspcap64.dll	3.9.1.61
WINSTA.dll  	6.2.14393.0
kimg_exr.dll
libIex.dll
libIlmImf.dll
libIlmThread.dll
libImath.dll
kimg_kra.dll
kimg_ora.dll
kimg_pcx.dll
kimg_pic.dll
kimg_psd.dll
kimg_ras.dll
kimg_rgb.dll
kimg_tga.dll
kimg_xcf.dll
qdds.dll    	5.6.1.0
qgif.dll    	5.6.1.0
qicns.dll   	5.6.1.0
qico.dll    	5.6.1.0
qjpeg.dll   	5.6.1.0
qsvg.dll    	5.6.1.0
qtiff.dll   	5.6.1.0
qwbmp.dll   	5.6.1.0
qwebp.dll   	5.6.1.0
clbcatq.dll 	2001.12.10941.16384
dataexchange.dll	6.2.14393.206
d3d11.dll   	6.2.14393.953
dcomp.dll   	6.2.14393.1378
dxgi.dll    	6.2.14393.953
twinapi.appcore.dll	6.2.14393.1378
exchndl.dll 	0.8.1.0
mgwhelp.dll 	0.8.1.0
dbghelp.dll 	6.3.9600.17298
wintab32.dll	1.0.5.8
CRYPTBASE.DLL	6.2.14393.0
Wacom_Tablet.dll	6.3.17.3
kritalcmsengine.dll
liblcms2.dll
krita_colorspaces_extensions.dll
kritachalkpaintop.dll
libkritalibpaintop.dll
kritacolorsmudgepaintop.dll
kritacurvepaintop.dll
kritadefaultpaintops.dll
kritadeformpaintop.dll
kritadynapaintop.dll
kritaexperimentpaintop.dll
kritafilterop.dll
kritagridpaintop.dll
kritahairypaintop.dll
kritahatchingpaintop.dll
kritaparticlepaintop.dll
kritaroundmarkerpaintop.dll
kritasketchpaintop.dll
kritaspraypaintop.dll
kritatangentnormalpaintop.dll
kritablurfilter.dll
kritacolorsfilters.dll
kritaconvolutionfilters.dll
kritadodgeburn.dll
kritaembossfilter.dll
kritaexample.dll
kritaextensioncolorsfilters.dll
kritafastcolortransferfilter.dll
kritagradientmap.dll
kritahalftone.dll
kritaimageenhancement.dll
kritaindexcolors.dll
kritalevelfilter.dll
kritanoisefilter.dll
kritanormalize.dll
kritaoilpaintfilter.dll
kritaphongbumpmap.dll
kritapixelizefilter.dll
kritaposterize.dll
kritaraindropsfilter.dll
kritarandompickfilter.dll
kritaroundcornersfilter.dll
kritasmalltilesfilter.dll
kritasobelfilter.dll
kritathreshold.dll
kritaunsharpfilter.dll
kritawavefilter.dll
krita_shape_text.dll
libkritatext.dll
libkritatextlayout.dll
krita_flaketools.dll
krita_karbontools.dll
krita_tool_basicflakes.dll
libkritabasicflakes.dll
krita_shape_vector.dll
libkritavectorimage.dll
krita_shape_artistictext.dll
krita_shape_paths.dll
kritacolorgenerator.dll
kritapatterngenerator.dll
kritadefaulttools.dll
libboost_system-mgw51-mt-1_61.dll
kritarulerassistanttool.dll
kritaselectiontools.dll
kritatoolSmartPatch.dll
kritatoolcrop.dll
kritatooldyna.dll
kritatoollazybrush.dll
kritatoolpolygon.dll
kritatoolpolyline.dll
kritatooltext.dll
kritatooltransform.dll
kritaanimationdocker.dll
krita_docker_defaults.dll
kritaartisticcolorselector.dll
kritachanneldocker.dll
kritacolorselectorng.dll
qsvgicon.dll	5.6.1.0
kritacolorslider.dll
kritacompositiondocker.dll
kritadefaultdockers.dll
kritadigitalmixer.dll
kritagriddocker.dll
kritahistogramdocker.dll
kritahistorydocker.dll
kritaimagedocker.dll
kritalutdocker.dll
libOpenColorIO.dll
kritaoverviewdocker.dll
kritapalettedocker.dll
kritapatterndocker.dll
kritapresetdocker.dll
kritapresethistory.dll
kritasmallcolorselector.dll
kritaspecificcolorselector.dll
kritatasksetdocker.dll
edputil.dll 	6.2.14393.1358
LINKINFO.dll	6.2.14393.0
PROPSYS.dll 	7.0.14393.0
kritaanimationrenderer.dll
kritabuginfo.dll
kritaclonesarray.dll
kritacolorrange.dll
kritacolorspaceconversion.dll
kritagmic.dll
libgomp_64-1.dll
kritahistogram.dll
kritaimagesize.dll
kritaimagesplit.dll
kritalayergroupswitcher.dll
kritalayersplit.dll
kritametadataeditor.dll
kritamodifyselection.dll
kritaoffsetimage.dll
kritaqmic.dll
kritaresourcemanager.dll
kritarotateimage.dll
kritaseparatechannels.dll
kritashearimage.dll
kritawaveletdecompose.dll
WININET.dll 	11.0.14393.1593
iertutil.dll	11.0.14393.1593
SspiCli.dll 	6.2.14393.576
ondemandconnroutehelper.dll	6.2.14393.351
winhttp.dll 	6.2.14393.953
mswsock.dll 	6.2.14393.0
WINNSI.DLL  	6.2.14393.0
urlmon.dll  	11.0.14393.1480
mdnsNSP.dll 	3.1.0.1
rasadhlp.dll	6.2.14393.0
fwpuclnt.dll	6.2.14393.0

Windows 6.2.9200
DrMingw 0.8.1
Comment 3 andrew.arv.spam 2017-09-13 04:25:31 UTC
I reinstalled 3.2.0 and can confirm it works fine in that version.
Comment 4 Alvin Wong 2017-09-13 06:19:51 UTC
(In reply to andrew.arv.spam from comment #3)
> I reinstalled 3.2.0 and can confirm it works fine in that version.

This is curious though, because the backtrace points to kritaimagedocker (aka the Reference Image docker) trying to load an svg image (with text elements) through Qt and crashing for some reason. There hasn't been any changes regarding it so if it doesn't work with 3.2.1, it shouldn't have worked with 3.2.0...

That aside, if you go to %LocalAppData%, open kritarc with notepad, search for "[referenceImageDocker]" and edit the "lastUsedDirectory" config manually to point to another directory without the svg image, it should stop crashing.

Can you check if there is an svg image containing text elements in the directory that the Reference Image docker was on? It would help if you can confirm that it's related to a specific svg file, but I don't know if we can do anything about that. Also we will be using a newer version of Qt for the next release, and it might or might not fix the crash...
Comment 5 andrew.arv.spam 2017-09-13 17:37:39 UTC
(In reply to Alvin Wong from comment #4)
> (In reply to andrew.arv.spam from comment #3)
> > I reinstalled 3.2.0 and can confirm it works fine in that version.
> 
> This is curious though, because the backtrace points to kritaimagedocker
> (aka the Reference Image docker) trying to load an svg image (with text
> elements) through Qt and crashing for some reason. There hasn't been any
> changes regarding it so if it doesn't work with 3.2.1, it shouldn't have
> worked with 3.2.0...
> 
> That aside, if you go to %LocalAppData%, open kritarc with notepad, search
> for "[referenceImageDocker]" and edit the "lastUsedDirectory" config
> manually to point to another directory without the svg image, it should stop
> crashing.
> 
> Can you check if there is an svg image containing text elements in the
> directory that the Reference Image docker was on? It would help if you can
> confirm that it's related to a specific svg file, but I don't know if we can
> do anything about that. Also we will be using a newer version of Qt for the
> next release, and it might or might not fix the crash...

Interesting, I actually don't have [referenceImageDocker] in my kritarc at all. I added it manually just to see if that would have an effect, but no luck.
Comment 6 andrew.arv.spam 2017-09-13 17:43:50 UTC
Ah, now I feel silly. I must have accidentally downloaded the wrong version when I went back to verify without noticing.

3.1.2.1 is the version that still works correctly. Not 3.2.0.

Still, while my initial report isn't entirely correct, the issue does still occur in 3.2.1 (as well as 3.2.0). Perhaps that may shine some more light on the issue?
Comment 7 Alvin Wong 2017-09-15 10:44:23 UTC
Can you narrow it down a bit and check if 3.1.4 works? https://download.kde.org/stable/krita/3.1.4/
Comment 8 Alvin Wong 2017-09-15 10:51:10 UTC
Or maybe we should try tackling it at another angle... do you have any SVG images in your "Pictures" folder? If there are SVG images, try moving them to another folder and see if Krita 3.2.1 still crashes after that.

If there aren't any SVG images then it's really a mystery...
Comment 9 andrew.arv.spam 2017-09-15 20:24:21 UTC
(In reply to Alvin Wong from comment #7)
> Can you narrow it down a bit and check if 3.1.4 works?
> https://download.kde.org/stable/krita/3.1.4/

Just tried it, it does indeed work.

I do have .svg files in my Pictures folder and upon removing them I found that Krita 3.2.1 DOESN'T crash at startup! And sure enough, when I moved them back it started crashing again. So that appears to be contributing to the issue for sure.

The files were all made in Inkscape if that information is useful.
Comment 10 Halla Rempt 2017-09-16 09:42:31 UTC
Could you please share those svg files with us, so we can do tests with them? If they are confidential, you can share them with me personally, either by mailing them to boudewijnrempt@gmail.com or sharing a drive link.
Comment 11 Halla Rempt 2017-09-16 10:12:52 UTC
Git commit 7fd7b180bec235375d40f932a7f1f4b219ccd245 by Boudewijn Rempt.
Committed on 16/09/2017 at 10:10.
Pushed by rempt into branch 'krita/3.3'.

Only start the reference image loader thread when the docker becomes visible

This won't stop Krita from crashing on startup in a qimageio plugin if
there are broken files in the location where it's looking, but at least
that crash only happens when people use the imagedocker. It should also
help a bit with the load on startup, especially if the Pictures folder
is quite full.

The real issue is, of course, that Qt's qimageio plugin mechanism is
really, really, really dangerous.

M  +1    -1    plugins/dockers/imagedocker/image_strip_scene.cpp
M  +1    -1    plugins/dockers/imagedocker/image_strip_scene.h
M  +9    -9    plugins/dockers/imagedocker/imagedocker_dock.cpp
M  +2    -1    plugins/dockers/imagedocker/imagedocker_dock.h

https://commits.kde.org/krita/7fd7b180bec235375d40f932a7f1f4b219ccd245
Comment 12 Halla Rempt 2017-09-16 13:20:02 UTC
Git commit 536a65ab0c740ff1ed2028d7bcac3578ffb36320 by Boudewijn Rempt.
Committed on 16/09/2017 at 13:19.
Pushed by rempt into branch 'kazakov/async-animation-rendering'.

Only start the reference image loader thread when the docker becomes visible

This won't stop Krita from crashing on startup in a qimageio plugin if
there are broken files in the location where it's looking, but at least
that crash only happens when people use the imagedocker. It should also
help a bit with the load on startup, especially if the Pictures folder
is quite full.

The real issue is, of course, that Qt's qimageio plugin mechanism is
really, really, really dangerous.

M  +1    -1    plugins/dockers/imagedocker/image_strip_scene.cpp
M  +1    -1    plugins/dockers/imagedocker/image_strip_scene.h
M  +9    -9    plugins/dockers/imagedocker/imagedocker_dock.cpp
M  +2    -1    plugins/dockers/imagedocker/imagedocker_dock.h

https://commits.kde.org/krita/536a65ab0c740ff1ed2028d7bcac3578ffb36320
Comment 13 andrew.arv.spam 2017-09-16 18:30:47 UTC
(In reply to Boudewijn Rempt from comment #10)
> Could you please share those svg files with us, so we can do tests with
> them? If they are confidential, you can share them with me personally,
> either by mailing them to boudewijnrempt@gmail.com or sharing a drive link.

I shared a drive link containing all the .svg files in my Pictures folder with your email.
Comment 14 Halla Rempt 2017-09-19 12:03:48 UTC
Okay, I tested these files with a Qt 5.9 based krita, and apparently this crash in the svg qimageio plugin was fixed.