ortools crashes ucrtbase.dll

676 views
Skip to first unread message

Attila Peller

unread,
Feb 20, 2019, 10:28:46 PM2/20/19
to or-tools...@googlegroups.com

Hi,

 

I have a QGis plugin to solve a vehicle routing problem using ORTools. 

 

When the program gets to the ORTools part, Qgis crashes and leaves an Error Event (attached) in Eventviewer, but no stacktrace.  

 

According to this event the crash is caused by ucrtbase.dll. See the screenshot below.

 

The OS is Windows server 2012 with latest updates.

 

I have created the user mode crash dump which is uploaded to onedrive including the WER report file here:

 

https://1drv.ms/f/s!ApOUFM1sYj1FhRT5NvmpmrWYYWum

 

Any help would be appreciated!

 

Cheers,

 

Atis

qgis event.jpg

Mark Farkas

unread,
Feb 21, 2019, 2:33:28 AM2/21/19
to or-tools...@googlegroups.com
Hi Attila,

Just a tip: I had similar problems when the target machine did not have the right version of the Visual C++ Runtime. This could be a case in your situation since you are using Windows Server 2012 which certainly lacks the latest MSVCRT by default.

Cheers,
Mark
--
You received this message because you are subscribed to the Google Groups "or-tools-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to or-tools-discu...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
<qgis event.jpg>

Attila Peller

unread,
Feb 21, 2019, 8:58:17 PM2/21/19
to or-tools...@googlegroups.com

Hi Mark,

I’ve already applied the c runtime from this update:

https://support.microsoft.com/en-us/help/2999226/update-for-universal-c-runtime-in-windows

 

also has all the C++ redistributables installed, but it always crashes when it comes to

routing.SolveWithParameters

What else could be updated/installed??

 

Cheers,

Attila

Laurent Perron

unread,
Feb 22, 2019, 4:50:17 AM2/22/19
to or-tools-discuss
Can you check all callbacks you pass to the solver are not garbaged out?
You can try adding GC.KeepAlive(callback) at end of the code. I believe being in a server environment, GC is much more aggressive.
Laurent Perron | Operations Research | lpe...@google.com | (33) 1 42 68 53 00


Mark Farkas

unread,
Feb 22, 2019, 6:47:25 AM2/22/19
to or-tools...@googlegroups.com
Hi Attila,

What Laurent pointed out helped me in a lot of cases.

Can you please clarify what kind of plug-in are you using? Is it open-source?
If you are using a garbage collected language, preserving a reference to the callback functions helps.

Does this issue happen immediately after you call SolveWithParameters or it takes a while to crash?

Cheers,
Mark

Attila Peller

unread,
Feb 24, 2019, 5:46:56 PM2/24/19
to or-tools...@googlegroups.com

Hi Lauren,

I’m programming in python a QGIS plugin. Not quite sure how to add c code there…

Cheers

Attila Peller

unread,
Feb 24, 2019, 6:02:12 PM2/24/19
to or-tools...@googlegroups.com

Hi Mark,

I’m developing a Qgis plugin in python for a customer to optimise their trucks pickup routes.

Python uses gc, but this problem is not on python level.

Qgis gets little frozen initially after routing.SolveWithParameters then windows tells that QGIS crashed.

This is the event left  behind.

https://1drv.ms/u/s!ApOUFM1sYj1FhR5JCHEptJHp86nY

 

Cheers

Mark Farkas

unread,
Feb 27, 2019, 7:11:35 AM2/27/19
to or-tools...@googlegroups.com
Hi Attila,

Unfortunately, it is a little bit hard to draw any conclusion based on the attached image without a stack trace.

What I would suggest you do is to create a "stand-alone" Python script with the same model and input data and try to evaluate if the problem still persists.
This way you could rule out if the situation arises in the interop layer between Python and Or-tools.

Maybe this sounds trivial and you have already tried it but let me know if that works.

Best regards,
Mark

Attila Peller

unread,
Mar 3, 2019, 5:07:43 PM3/3/19
to or-tools...@googlegroups.com

Hi Mark,

There is no stack trace because the crash happens on the system C runtime library level.

I did save the user level crash dump and the WER report file, just don’t know how to suss out the cause.

The crash dumps are here:  https://1drv.ms/f/s!ApOUFM1sYj1FhRT5NvmpmrWYYWum

I thought of writing a script running in python only, but the program should run under QGis at the end of the day…

Regards,

Attila Peller

unread,
Mar 13, 2019, 1:43:29 AM3/13/19
to or-tools...@googlegroups.com

Gents,

I’m back with my crash problem with some extra information.

Working on a QGis plugin written in python3 using ortools to solve a vehicle routing problem.

I’ve simplified the tw vehicle routing code temporary to a travelling salesman problem and for my surprise it worked without causing any crashes.

Since we really need routing, increased the number of routes from 1 to 2 without adding any addition resource constrains and the application started crashing again.

Changed the OS too from Windows server to Windows10, but the crash event looks pretty much the same. The C runtime causes the crash.

I’m wondering if anyone has any idea how the number of the routes can cause the c runtime to crash and if there is any way to debug this?

 

Event log error:

Faulting application name: qgis-bin.exe, version: 0.0.0.0, time stamp: 0x5bdd961c

Faulting module name: ucrtbase.dll, version: 10.0.17763.348, time stamp: 0x26a80883

Exception code: 0xc0000409

Fault offset: 0x000000000006e91e

Faulting process id: 0x286c

Faulting application start time: 0x01d4d95727dbe235

Faulting application path: C:\OSGEO4~2\bin\qgis-bin.exe

Faulting module path: C:\WINDOWS\System32\ucrtbase.dll

Report Id: 64444098-fa36-4cb9-8765-b24ae24bb75b

Faulting package full name:

Faulting package-relative application ID:

 

Any replies appreciated!

Regards,

Attila

 

 

From: or-tools...@googlegroups.com [mailto:or-tools...@googlegroups.com] On Behalf Of Mark Farkas


Sent: Saturday, 23 February 2019 12:47 AM

Laurent Perron

unread,
Mar 13, 2019, 3:16:55 AM3/13/19
to or-tools-discuss
Most likely gc pressure on the callbacks.
Can you check that any python objects passed to the solver outlive the call to solve.

Laurent Perron | Operations Research | lpe...@google.com | (33) 1 42 68 53 00


Mark Farkas

unread,
Mar 13, 2019, 4:59:09 AM3/13/19
to or-tools...@googlegroups.com
Hi Attila!

Try the following: when you create any callback then put its reference in a collection that is in the global scope i.e. it is referenced and kept alive by the GC during the whole lifetime of your program. This way we can rule out errors caused by the GC collecting callbacks that are still being called in the C++ layer (which is unaware of the lifetime of your Python objects).

If this works it means the error is in the interop layer.
Let me know what happens!

Cheers,
Mark

Attila Peller

unread,
Mar 13, 2019, 9:31:09 PM3/13/19
to or-tools...@googlegroups.com

Qgis crashes with only leaving eventlog behind and a crashdump.

Below is the Windbg analysis results if that helps.

 

*******************************************************************************

*                                                                             *

*                        Exception Analysis                                   *

*                                                                             *

*******************************************************************************

 

*** WARNING: Unable to verify checksum for QtWidgets.pyd

*** WARNING: Unable to verify checksum for Qt5Gui.dll

*** WARNING: Unable to verify checksum for qwindows.dll

*** WARNING: Unable to verify checksum for qca-qt5.dll

 

KEY_VALUES_STRING: 1

 

    Key  : Timeline.OS.Boot.DeltaSec

    Value: 1207

 

    Key  : Timeline.Process.Start.DeltaSec

    Value: 326

 

 

PROCESSES_ANALYSIS: 1

 

SERVICE_ANALYSIS: 1

 

STACKHASH_ANALYSIS: 1

 

TIMELINE_ANALYSIS: 1

 

Timeline: !analyze.Start

    Name: <blank>

    Time: 2019-03-14T00:46:08.486Z

    Diff: 1909669486 mSec

 

Timeline: Dump.Current

    Name: <blank>

    Time: 2019-02-19T22:18:19.0Z

    Diff: 0 mSec

 

Timeline: Process.Start

    Name: <blank>

    Time: 2019-02-19T22:12:53.0Z

    Diff: 326000 mSec

 

Timeline: OS.Boot

    Name: <blank>

    Time: 2019-02-19T21:58:12.0Z

    Diff: 1207000 mSec

 

 

DUMP_CLASS: 2

 

DUMP_QUALIFIER: 400

 

CONTEXT:  (.ecxr)

rax=0000000000000001 rbx=00007ff9aa72f300 rcx=0000000000000007

rdx=000000000000000f rsi=000000f597472778 rdi=0000000000000000

rip=00007ff9c310eabe rsp=000000f5974725a0 rbp=0000000000000000

r8=0000000000000008  r9=000000f5974725d0 r10=0000000000000007

r11=000000f597472530 r12=000000000000000f r13=000000f5eaa312c0

r14=0000000000000200 r15=0000000000000004

iopl=0         nv up ei pl nz na pe nc

cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202

ucrtbase!abort+0x4e:

00007ff9`c310eabe cd29            int     29h

Resetting default scope

 

FAULTING_IP:

ucrtbase!abort+4e

00007ff9`c310eabe cd29            int     29h

 

EXCEPTION_RECORD:  (.exr -1)

ExceptionAddress: 00007ff9c310eabe (ucrtbase!abort+0x000000000000004e)

   ExceptionCode: c0000409 (Security check failure or stack buffer overrun)

  ExceptionFlags: 00000001

NumberParameters: 1

   Parameter[0]: 0000000000000007

Subcode: 0x7 FAST_FAIL_FATAL_APP_EXIT

 

PROCESS_NAME:  qgis-bin.exe

 

ERROR_CODE: (NTSTATUS) 0xc0000409 - The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.

 

EXCEPTION_CODE: (NTSTATUS) 0xc0000409 - The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.

 

EXCEPTION_CODE_STR:  c0000409

 

EXCEPTION_PARAMETER1:  0000000000000007

 

WATSON_BKT_PROCSTAMP:  5c1f0c08

 

WATSON_BKT_MODULE:  ucrtbase.dll

 

WATSON_BKT_MODSTAMP:  5adc1d0b

 

WATSON_BKT_MODOFFSET:  6eabe

 

WATSON_BKT_MODVER:  10.0.14393.2247

 

MODULE_VER_PRODUCT:  Microsoft® Windows® Operating System

 

BUILD_VERSION_STRING:  6.3.9600.18217 (winblue_ltsb.160124-0053)

 

MODLIST_WITH_TSCHKSUM_HASH:  ba738c5c9da18a0778d9b2b8ceffe61537ebd82a

 

MODLIST_SHA1_HASH:  70a3c503186905e0816aacc05035d982c1a9e1e1

 

NTGLOBALFLAG:  0

 

APPLICATION_VERIFIER_FLAGS:  0

 

PRODUCT_TYPE:  3

 

SUITE_MASK:  272

 

DUMP_FLAGS:  8000c07

 

DUMP_TYPE:  3

 

ANALYSIS_SESSION_HOST:  AV-ENVY-17

 

ANALYSIS_SESSION_TIME:  03-14-2019 13:46:08.0486

 

ANALYSIS_VERSION: 10.0.18317.1001 amd64fre

 

THREAD_ATTRIBUTES:

OS_LOCALE:  ENU

 

BUGCHECK_STR:  FAIL_FAST_FATAL_APP_EXIT

 

DEFAULT_BUCKET_ID:  FAIL_FAST_FATAL_APP_EXIT

 

PRIMARY_PROBLEM_CLASS:  FAIL_FAST

 

PROBLEM_CLASSES:

 

    ID:     [0n282]

    Type:   [FAIL_FAST]

    Class:  Primary

    Scope:  DEFAULT_BUCKET_ID (Failure Bucket ID prefix)

            BUCKET_ID

    Name:   Add

    Data:   Omit

    PID:    [Unspecified]

    TID:    [Unspecified]

    Frame:  [0]

 

    ID:     [0n271]

    Type:   [FATAL_APP_EXIT]

    Class:  Addendum

    Scope:  DEFAULT_BUCKET_ID (Failure Bucket ID prefix)

            BUCKET_ID

    Name:   Add

    Data:   Omit

    PID:    [Unspecified]

    TID:    [Unspecified]

    Frame:  [0]

 

LAST_CONTROL_TRANSFER:  from 00007ff9a984a5ca to 00007ff9c310eabe

 

STACK_TEXT: 

000000f5`974725a0 00007ff9`a984a5ca : 00000000`00000003 00000000`00000003 000000f5`eaa312c0 00000000`0000000f : ucrtbase!abort+0x4e

000000f5`974725d0 00007ff9`a9851a65 : 00007ff9`00000002 00007ff9`aa72f300 000000f5`97472778 00007ff9`c3185510 : _pywrapcp!PyInit__pywrapcp+0x4f55a

000000f5`97472600 00007ff9`a984ec65 : 00000000`00000000 00007ff9`aa736a28 00000000`00000000 000000f5`97472778 : _pywrapcp!PyInit__pywrapcp+0x569f5

000000f5`974726d0 00007ff9`a984d142 : 00007ff9`aa736a28 000000f5`ee77a9f0 00000000`00000001 000000f5`ee77a9f0 : _pywrapcp!PyInit__pywrapcp+0x53bf5

000000f5`97472710 00007ff9`a9a45636 : 00007ff9`aa7368c8 000000f5`ee77a9f0 000000f5`00000000 00000000`00000000 : _pywrapcp!PyInit__pywrapcp+0x520d2

000000f5`97472750 00007ff9`a9a9fec2 : 000000f5`00000001 00000000`00000048 000000f5`e9fb0a50 00007ff9`aa6fedb0 : _pywrapcp!PyInit__pywrapcp+0x24a5c6

000000f5`974727d0 00007ff9`a977c11f : 000000f5`ec2b6f90 00007ff9`aa42ef58 000000f5`00000200 000000f5`eeac3e70 : _pywrapcp!PyInit__pywrapcp+0x2a4e52

000000f5`97472800 00007ff9`ae18e948 : 00000000`00000000 00000000`00000001 000000f5`00000200 000000f5`ec839978 : _pywrapcp+0x6c11f

000000f5`97472870 00007ff9`ae18f17e : 000000f5`97472a18 00000000`00000002 000000f5`ec8518b0 000000f5`eb2c1120 : python37!PyMethodDef_RawFastCallKeywords+0x328

000000f5`974728c0 00007ff9`ae18fc71 : 000000f5`00000000 000000f5`e03b1dc8 000000f5`97472a30 000000f5`eb27e5fa : python37!PyMethodDef_RawFastCallKeywords+0xb5e

000000f5`97472980 00007ff9`ae18f11a : 000000f5`e03b1dc8 000000f5`ec851728 000000f5`ee337b00 000000f5`97472c18 : python37!PyEval_EvalFrameDefault+0x8e1

000000f5`97472ac0 00007ff9`ae18fc71 : 000000f5`00000000 00000000`00000001 000000f5`97472c30 000000f5`eb13e7d8 : python37!PyMethodDef_RawFastCallKeywords+0xafa

000000f5`97472b80 00007ff9`ae18f11a : 000000f5`e9fe0408 000000f5`ee3378f8 000000f5`9a5b0e70 000000f5`97472e18 : python37!PyEval_EvalFrameDefault+0x8e1

000000f5`97472cc0 00007ff9`ae18f7b2 : 000000f5`00000001 000000f5`97472e80 000000f5`97472e30 000000f5`eb1b55c8 : python37!PyMethodDef_RawFastCallKeywords+0xafa

000000f5`97472d80 00007ff9`ae17c18d : 00000000`00000001 000000f5`e269c870 00000000`00000001 00000000`00000001 : python37!PyEval_EvalFrameDefault+0x422

000000f5`97472ec0 00007ff9`ae17b77e : 00000000`00000020 00000000`00000000 000000f5`eb655a60 000000f5`97472fb0 : python37!PyFunction_FastCallDict+0xdd

000000f5`97472f90 00007ff9`ae1b2625 : 00000000`00000000 000000f5`00000017 00000000`00000000 000000f5`ec81ec48 : python37!PyMethodDef_RawFastCallDict+0x36e

000000f5`97473020 00007ff9`ae044ed8 : 000000f5`9fea0048 00007ff9`ae46f160 000000f5`ec7db648 000000f5`e14f44f0 : python37!PyObject_Call+0x75

000000f5`97473050 00007ff9`ae045261 : 000000f5`9e165bb8 00000000`00000000 00000000`00000000 00007ff9`ae46f160 : QtCore!PyInit_QtCore+0xea28

000000f5`974730c0 00007ff9`ae045314 : 000000f5`9e80bb80 000000f5`9a8b6440 000000f5`9a8b6440 00000000`00000000 : QtCore!PyInit_QtCore+0xedb1

000000f5`97473120 00007ff9`ae0463d5 : 000000f5`e14f44f0 00000000`00000000 000000f5`97473231 00007ff9`b69c2a11 : QtCore!PyInit_QtCore+0xee64

000000f5`97473160 00007ff9`ae0462f5 : 00000000`00000000 000000f5`97473300 00000000`00000000 000000f5`9a8b6440 : QtCore!PyInit_QtCore+0xff25

000000f5`97473190 00007ff9`b503e254 : 00007ff9`b53dc798 000000f5`97473279 000000f5`9ab294e0 000000f5`edaf7e00 : QtCore!PyInit_QtCore+0xfe45

000000f5`974731c0 00007ff9`b6a84d5c : 000000f5`e14f44f0 000000f5`00000009 000000f5`e1517c10 000000f5`97473300 : Qt5Core!QMetaObject::activate+0x614

000000f5`974732e0 00007ff9`b6a84c7d : 000000f5`e214e700 000000f5`e214e7f0 000000f5`e14f44f0 00000000`00000000 : Qt5Widgets!QAbstractButton::clicked+0xac

000000f5`97473330 00007ff9`b6a85aac : 000000f5`e14f44f0 000000f5`974734e0 000000f5`974741d0 000000f5`e14f44f0 : Qt5Widgets!QAbstractButton::click+0x19d

000000f5`97473370 00007ff9`aca1451a : 00000005`00000029 000000f5`e14f44f0 000000f5`e14f44f0 000000f5`974741d0 : Qt5Widgets!QAbstractButton::mouseReleaseEvent+0x8c

000000f5`974733a0 00007ff9`b69dbc5c : 00000000`00000001 00007ff9`b69a0000 000000f5`9ab61850 00007ff9`b6bbd33d : QtWidgets+0x1d451a

000000f5`974733e0 00007ff9`aca0feda : 000000f5`e14f44f0 000000f5`e14f44f0 000000f5`e14f44f0 00000000`00000000 : Qt5Widgets!QWidget::event+0xdc

000000f5`974735c0 00007ff9`b69b8ca0 : 000000f5`97512be0 000000f5`97512be0 000000f5`e14f44f0 000000f5`974741d0 : QtWidgets+0x1cfeda

000000f5`97473600 00007ff9`b69b68ad : 000000f5`974741d0 000000f5`97473730 000000f5`974741d0 000000f5`97512be0 : Qt5Widgets!QApplicationPrivate::notify_helper+0x140

000000f5`97473630 00007ff9`ba1397cf : 000000f5`e1517c10 000000f5`97512be0 000000f5`974741d0 000000f5`ee8bf770 : Qt5Widgets!QApplication::notify+0x8dd

000000f5`97473d60 00007ff9`b501ea59 : 000000f5`975329b0 000000f5`e14f44f0 00000000`00000001 000000f5`e14f4401 : qgis_core!QgsApplication::notify+0x7f

000000f5`97473dd0 00007ff9`b69b9fe6 : 40751000`00000000 4065e000`00000000 00000000`ffffffff 00000000`00000000 : Qt5Core!QCoreApplication::notifyInternal2+0xb9

000000f5`97473e50 00007ff9`b6a04249 : 000000f5`97474e01 000000f5`97474ea0 00000000`00000000 000000f5`97473ff4 : Qt5Widgets!QApplicationPrivate::sendMouseEvent+0x326

000000f5`97473f50 00007ff9`b6a01fbe : 000000f5`ee8bf770 000000f5`ee8bf770 000000f5`e14f44f0 000000f5`e14f44f0 : Qt5Widgets!QSizePolicy::QSizePolicy+0x2d19

000000f5`974742f0 00007ff9`b69b8ca0 : 000000f5`ee8bf770 000000f5`97512be0 000000f5`ee8bf770 000000f5`97474e70 : Qt5Widgets!QSizePolicy::QSizePolicy+0xa8e

000000f5`97474350 00007ff9`b69b7b27 : 00007ff9`b69a0000 000000f5`97474480 000000f5`97474e70 000000f5`97512be0 : Qt5Widgets!QApplicationPrivate::notify_helper+0x140

000000f5`97474380 00007ff9`ba1397cf : 000000f5`9747ee00 000000f5`97512be0 000000f5`97474e70 00007ff9`c30b05d6 : Qt5Widgets!QApplication::notify+0x1b57

000000f5`97474ab0 00007ff9`b501ea59 : 000000f5`975329b0 000000f5`ee8bf770 00000000`00000001 000000f5`ee8bf701 : qgis_core!QgsApplication::notify+0x7f

000000f5`97474b20 00007ff9`b559e1f1 : 00000000`00000003 000000f5`edaf7500 000000f5`ee8bf770 00000000`00000000 : Qt5Core!QCoreApplication::notifyInternal2+0xb9

000000f5`97474ba0 00007ff9`b5584c4b : 000000f5`edaf7500 00000000`00000000 000000f5`9754ec40 000000f5`9757c3a0 : Qt5Gui!QGuiApplicationPrivate::processMouseEvent+0x871

000000f5`97475020 00007ff9`b50686a5 : 000000f5`00000064 00007ff9`b5b20340 00000000`00000000 000000f5`9754f290 : Qt5Gui!QWindowSystemInterface::sendWindowSystemEvents+0x9b

000000f5`97475050 00007ff9`d37024fd : 00000000`00000401 000000f5`97475248 000000f5`97475278 00000000`000301e6 : Qt5Core!QEventDispatcherWin32::processEvents+0xd65

000000f5`97475180 00007ff9`d3702357 : 000000f5`97a29ae0 000000f5`97475300 00000000`0002020a 00007ff9`b5019344 : user32!UserCallWinProcCheckWow+0x149

000000f5`97475250 00007ff9`b5067e76 : 000000f5`975329b0 000000f5`9754f301 000000f5`9754f290 00000000`00000000 : user32!DispatchMessageWorker+0x1a7

000000f5`974752d0 00007ff9`afc899e9 : 00000000`00000000 000000f5`00000064 000000f5`97478500 000000f5`00000000 : Qt5Core!QEventDispatcherWin32::processEvents+0x536

000000f5`97478450 00007ff9`b501a923 : 000000f5`97512be0 00000000`00000014 00000000`00000010 000000f5`975329b0 : qwindows!qt_plugin_query_metadata+0x1d19

000000f5`97478480 00007ff9`b6b761a7 : 000000f5`97530690 00000000`00000040 00000000`00000000 000000f5`ed6a9ab0 : Qt5Core!QEventLoop::exec+0x1b3

000000f5`97478500 00007ff9`ac8bc810 : 00000000`00000040 00000000`00000001 00000000`00000001 000000f5`974785d0 : Qt5Widgets!QDialog::exec+0x167

000000f5`97478590 00007ff9`ae18e948 : 000000f5`eb1dcb88 00000000`00000000 000000f5`e14f34f0 00000000`00000000 : QtWidgets+0x7c810

000000f5`974785d0 00007ff9`ae18f17e : 000000f5`97478778 00000000`00000000 000000f5`ec836398 000000f5`ec171ab0 : python37!PyMethodDef_RawFastCallKeywords+0x328

000000f5`97478620 00007ff9`ae18fc71 : 000000f5`00000000 000000f5`974787e0 000000f5`97478790 000000f5`eb1c25c2 : python37!PyMethodDef_RawFastCallKeywords+0xb5e

000000f5`974786e0 00007ff9`ae17c18d : 000000f5`e03b1dc8 000000f5`e269c870 00000000`00000001 00000000`00000001 : python37!PyEval_EvalFrameDefault+0x8e1

000000f5`97478820 00007ff9`ae17b77e : 000000f5`9a04e050 00000000`00000000 000000f5`eb655730 000000f5`97478910 : python37!PyFunction_FastCallDict+0xdd

000000f5`974788f0 00007ff9`ae1b2625 : 00000000`00000000 000000f5`97512be0 00000000`00000000 000000f5`ec813b48 : python37!PyMethodDef_RawFastCallDict+0x36e

000000f5`97478980 00007ff9`ae044ed8 : 000000f5`9fea0048 00007ff9`ae46f160 000000f5`ec81ccc8 000000f5`ea912ce0 : python37!PyObject_Call+0x75

000000f5`974789b0 00007ff9`ae045261 : 000000f5`9e165bb8 00000000`00000000 00000000`00000000 00007ff9`ae46f160 : QtCore!PyInit_QtCore+0xea28

000000f5`97478a20 00007ff9`ae045314 : 00000000`00000000 000000f5`9e1351e0 000000f5`9e1351e0 00000000`00000000 : QtCore!PyInit_QtCore+0xedb1

000000f5`97478a80 00007ff9`ae0463d5 : 000000f5`9e80bb80 00000000`00000000 000000f5`e1dfb350 000000f5`9e9f27c0 : QtCore!PyInit_QtCore+0xee64

000000f5`97478ac0 00007ff9`ae0462f5 : 00000000`00000000 000000f5`97478c60 00000000`00000000 000000f5`9e1351e0 : QtCore!PyInit_QtCore+0xff25

000000f5`97478af0 00007ff9`b503e254 : 00007ff9`b53dc768 000000f5`97478bd9 000000f5`9a89baf0 000000f5`9e9f27c0 : QtCore!PyInit_QtCore+0xfe45

000000f5`97478b20 00007ff9`b69a8002 : 000000f5`9e80bb80 000000f5`00000004 000000f5`ed6a9830 000000f5`97478c60 : Qt5Core!QMetaObject::activate+0x614

000000f5`97478c40 00007ff9`b6a84c26 : 000000f5`e1dfb350 00007ff9`b6b5df00 000000f5`9e9f27c0 000000f5`97479ae0 : Qt5Widgets!QAction::activate+0x132

000000f5`97478c90 00007ff9`b6a85aac : 000000f5`e1dfb350 000000f5`97478e30 000000f5`97479ae0 00000018`00000018 : Qt5Widgets!QAbstractButton::click+0x146

000000f5`97478cd0 00007ff9`b6b5e57f : 0000000d`00000010 000000f5`e1dfb350 000000f5`9e9f27c0 000000f5`9e9f27c0 : Qt5Widgets!QAbstractButton::mouseReleaseEvent+0x8c

000000f5`97478d00 00007ff9`b69dbc5c : 00000000`00000003 00007ff9`b69a0000 000000f5`9e9f27c0 000000f5`9e9f1f00 : Qt5Widgets!QToolButton::mouseReleaseEvent+0xf

000000f5`97478d30 00007ff9`b69b8ca0 : 000000f5`97512be0 000000f5`9e9f27c0 000000f5`9e9f27c0 000000f5`97479ae0 : Qt5Widgets!QWidget::event+0xdc

000000f5`97478f10 00007ff9`b69b68ad : 000000f5`97479ae0 000000f5`97479040 000000f5`97479ae0 000000f5`97512be0 : Qt5Widgets!QApplicationPrivate::notify_helper+0x140

000000f5`97478f40 00007ff9`ba1397cf : 000000f5`e1517d50 000000f5`97512be0 000000f5`97479ae0 000000f5`ea9322a0 : Qt5Widgets!QApplication::notify+0x8dd

000000f5`97479670 00007ff9`b501ea59 : 000000f5`975329b0 000000f5`9e9f27c0 00000000`00000001 000000f5`9e9f2701 : qgis_core!QgsApplication::notify+0x7f

000000f5`974796e0 00007ff9`b69b9fe6 : 40640000`00000000 40598000`00000000 00000000`ffffffff 00000000`00000000 : Qt5Core!QCoreApplication::notifyInternal2+0xb9

000000f5`97479760 00007ff9`b6a04249 : 000000f5`9747a701 000000f5`9747a7b0 00000000`00000000 000000f5`97479904 : Qt5Widgets!QApplicationPrivate::sendMouseEvent+0x326

000000f5`97479860 00007ff9`b6a01fbe : 000000f5`ea9322a0 000000f5`ea9322a0 000000f5`9e9f27c0 000000f5`9e9f27c0 : Qt5Widgets!QSizePolicy::QSizePolicy+0x2d19

000000f5`97479c00 00007ff9`b69b8ca0 : 000000f5`ea9322a0 000000f5`97512be0 000000f5`ea9322a0 000000f5`9747a780 : Qt5Widgets!QSizePolicy::QSizePolicy+0xa8e

000000f5`97479c60 00007ff9`b69b7b27 : 00007ff9`b69a0000 000000f5`97479d90 000000f5`9747a780 000000f5`97512be0 : Qt5Widgets!QApplicationPrivate::notify_helper+0x140

000000f5`97479c90 00007ff9`ba1397cf : 000000f5`9747ee00 000000f5`97512be0 000000f5`9747a780 00007ff9`c30b05d6 : Qt5Widgets!QApplication::notify+0x1b57

000000f5`9747a3c0 00007ff9`b501ea59 : 000000f5`975329b0 000000f5`ea9322a0 00000000`00000001 000000f5`ea932201 : qgis_core!QgsApplication::notify+0x7f

000000f5`9747a430 00007ff9`b559e1f1 : 00000000`00000003 000000f5`ee1fbe00 000000f5`ea9322a0 00000000`00000000 : Qt5Core!QCoreApplication::notifyInternal2+0xb9

000000f5`9747a4b0 00007ff9`b5584c4b : 000000f5`ee1fbe00 00000000`00000000 000000f5`9754ec40 000000f5`9757c3a0 : Qt5Gui!QGuiApplicationPrivate::processMouseEvent+0x871

000000f5`9747a930 00007ff9`b50686a5 : 000000f5`00000024 00007ff9`b5b20340 00000000`00000000 000000f5`9754f290 : Qt5Gui!QWindowSystemInterface::sendWindowSystemEvents+0x9b

 

THREAD_SHA1_HASH_MOD_FUNC:  a9b5b2a53a028e71ba41b3547cdd19695743e0db

 

THREAD_SHA1_HASH_MOD_FUNC_OFFSET:  629d5f89adbf3af9ba7e50d523487bcc94a350cb

 

THREAD_SHA1_HASH_MOD:  14fefacf6c8c75dd5e79ce956574e09c2cea45a3

 

FOLLOWUP_IP:

ucrtbase!abort+4e

00007ff9`c310eabe cd29            int     29h

 

FAULT_INSTR_CODE:  15ba29cd

 

SYMBOL_STACK_INDEX:  0

 

SYMBOL_NAME:  ucrtbase!abort+4e

 

FOLLOWUP_NAME:  MachineOwner

 

MODULE_NAME: ucrtbase

 

IMAGE_NAME:  ucrtbase.dll

 

DEBUG_FLR_IMAGE_TIMESTAMP:  5adc1d0b

 

STACK_COMMAND:  ~0s ; .ecxr ; kb

 

BUCKET_ID:  FAIL_FAST_FATAL_APP_EXIT_ucrtbase!abort+4e

 

FAILURE_EXCEPTION_CODE:  c0000409

 

FAILURE_IMAGE_NAME:  ucrtbase.dll

 

BUCKET_ID_IMAGE_STR:  ucrtbase.dll

 

FAILURE_MODULE_NAME:  ucrtbase

 

BUCKET_ID_MODULE_STR:  ucrtbase

 

FAILURE_FUNCTION_NAME:  abort

 

BUCKET_ID_FUNCTION_STR:  abort

 

BUCKET_ID_OFFSET:  4e

 

BUCKET_ID_MODTIMEDATESTAMP:  5adc1d0b

 

BUCKET_ID_MODCHECKSUM:  f4102

 

BUCKET_ID_MODVER_STR:  10.0.14393.2247

 

BUCKET_ID_PREFIX_STR:  FAIL_FAST_FATAL_APP_EXIT_

 

FAILURE_PROBLEM_CLASS:  FAIL_FAST

 

FAILURE_SYMBOL_NAME:  ucrtbase.dll!abort

 

FAILURE_BUCKET_ID:  FAIL_FAST_FATAL_APP_EXIT_c0000409_ucrtbase.dll!abort

 

TARGET_TIME:  2019-02-19T22:18:19.000Z

 

OSBUILD:  9600

 

OSSERVICEPACK:  17415

 

SERVICEPACK_NUMBER: 0

 

OS_REVISION: 0

 

OSPLATFORM_TYPE:  x64

 

OSNAME:  Windows 8.1

 

OSEDITION:  Windows 8.1 Server TerminalServer SingleUserTS

 

USER_LCID:  0

 

OSBUILD_TIMESTAMP:  2014-10-29 15:45:30

 

BUILDDATESTAMP_STR:  160124-0053

 

BUILDLAB_STR:  winblue_ltsb

 

BUILDOSVER_STR:  6.3.9600.18217

 

ANALYSIS_SESSION_ELAPSED_TIME:  1b14

 

ANALYSIS_SOURCE:  UM

 

FAILURE_ID_HASH_STRING:  um:fail_fast_fatal_app_exit_c0000409_ucrtbase.dll!abort

 

FAILURE_ID_HASH:  {e31753ac-c98a-8055-3663-47e707543d20}

 

Followup:     MachineOwner

---------

Attila Peller

unread,
Mar 13, 2019, 10:16:03 PM3/13/19
to or-tools...@googlegroups.com

Hi Mark,

My whole code is in python under Qgis. Under callback you mean function like distance or time callback for routing? Apologise for my ignorance, but being a GIS guy, I don’t know much about C++ at all

Cheers,

Attila

Laurent Perron

unread,
Mar 14, 2019, 1:16:41 AM3/14/19
to or-tools-discuss
Yes. Although it seems it crashes when the CP module is loading , and not when solving. 

Do you know when it crashes? Can you add logs in your applications to check if you can actually create a RoutingModel?

Mark Farkas

unread,
Mar 14, 2019, 2:35:36 AM3/14/19
to or-tools...@googlegroups.com
Hi Attila,

Yes, distance and time callbacks. Although what Laurent indicated the failure may occur before solving. Your exception indicates a STATUS_STACK_BUFFER_OVERRUN error and that is not what you get when the GC collects your callback. Did you check your RoutingModel if that is created without errors? Btw. I am happy to do a pair programming with you if the code is not confidential when I get back from my holiday. (27th of March)
Also, can you build a standalone Python script without QGis (using the same data as an input but running a pure Python script with no additional dependencies on QGis)

Cheers,
Mark

Attila Peller

unread,
Mar 17, 2019, 9:20:23 PM3/17/19
to or-tools...@googlegroups.com

My last log entry was before the

assignment = routing.SolveWithParameters(search_parameters)

line if this helps…

Attila Peller

unread,
Mar 17, 2019, 11:37:38 PM3/17/19
to or-tools...@googlegroups.com

Hi Mark,

I really appreciate your offer. I will try to build the standalone python application first and let you know how did it go.

I also have to find some other solution to generate the distance matrix, since letting  google to generate one for every routing request,  proves to be too expensive.

blind.line

unread,
Mar 18, 2019, 2:22:32 PM3/18/19
to or-tools...@googlegroups.com
Attila, 

For the distance matrix generation, I’ve had good results using OSRM (https://github.com/Project-OSRM). Certainly not as accurate as Google maps data, but good enough for all cities I’ve tested so far. 

A quick search shows a few qgis osrm plugin projects on github, but the two I glanced at seemed inactive, but maybe one might give you a starting point. 

James
Reply all
Reply to author
Forward
0 new messages