Bug 85939 - reworked Special Character dialog is throwing a compiler assert error in vcl builder
Summary: reworked Special Character dialog is throwing a compiler assert error in vcl ...
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
Version:
(earliest affected)
4.4.0.0.alpha1
Hardware: Other All
: medium normal
Assignee: Caolán McNamara
URL:
Whiteboard: target:4.4.0
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-05 20:37 UTC by V Stuart Foote
Modified: 2014-11-08 19:25 UTC (History)
5 users (show)

See Also:
Crash report or crash signature:


Attachments
Clip of MS VS2012 assert error message (14.79 KB, image/png)
2014-11-05 20:39 UTC, V Stuart Foote
Details
WinDbg stack strace of all threads (31.03 KB, text/plain)
2014-11-05 20:40 UTC, V Stuart Foote
Details
TB45 dbg build back trace of assert error (and crash) on 32-bit Linux (5.78 KB, text/plain)
2014-11-06 23:42 UTC, V Stuart Foote
Details
bt following core dump for assert error in VCL builder.hxx (6.69 KB, text/plain)
2014-11-07 14:45 UTC, V Stuart Foote
Details
bt following core dump for asser error in VCL builder.hxx more complete symbols (6.71 KB, text/plain)
2014-11-07 15:24 UTC, V Stuart Foote
Details

Note You need to log in before you can comment on or make changes to this bug.
Description V Stuart Foote 2014-11-05 20:37:36 UTC
The reworked Special Character dialog is throwing a MS VS2012 Assert error on TB39 32-bit debug builds for Windows. Screen clip attached. 

Trace shows fault at cuilo!VclBuilder::get<OKButton>+2e1 [c:\cygwin\home\tinderbox\master\include\vcl\builder.hxx @ 407]

Here is the WinDbg st.

0:000> !analyze -v
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************


FAULTING_IP: 
MSVCR110!_wassert+59c
62be3c42 cc              int     3

EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 62be3c42 (MSVCR110!_wassert+0x0000059c)
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]: 00000000

CONTEXT:  00000000 -- (.cxr 0x0;r)
eax=00000004 ebx=097f80e4 ecx=8a92daea edx=01040180 esi=00000240 edi=00000000
eip=62be3c42 esp=00c1c9cc ebp=00c1d4f8 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000244
MSVCR110!_wassert+0x59c:
62be3c42 cc              int     3

FAULTING_THREAD:  000005d4

DEFAULT_BUCKET_ID:  STATUS_BREAKPOINT

PROCESS_NAME:  soffice.bin

OVERLAPPED_MODULE: Address regions for 'localedata_en' and 'faultrep.dll' overlap

ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION}  Breakpoint  A breakpoint has been reached.

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid

EXCEPTION_PARAMETER1:  00000000

NTGLOBALFLAG:  0

APPLICATION_VERIFIER_FLAGS:  0

APP:  soffice.bin

ANALYSIS_VERSION: 6.3.9600.16384 (debuggers(dbg).130821-1623) x86fre

PRIMARY_PROBLEM_CLASS:  STATUS_BREAKPOINT

BUGCHECK_STR:  APPLICATION_FAULT_STATUS_BREAKPOINT

LAST_CONTROL_TRANSFER:  from 09568ba1 to 62be3c42

STACK_TEXT:  
00c1d4f8 09568ba1 097f80e4 097f7608 00000197 MSVCR110!_wassert+0x59c
00c1d670 09568bea 0d6976e0 00c1d6d4 0d697658 cuilo!VclBuilder::get<OKButton>+0x2e1
00c1d684 095b1b3c 0d6976e0 00c1d6d4 ea638da3 cuilo!VclBuilderContainer::get<OKButton>+0x1a
00c1d718 096374dd 0d5bc800 00000001 00c1d840 cuilo!SvxCharacterMap::SvxCharacterMap+0x1fc
00c1d76c 0e6628e6 0d5bc800 00c1d840 00c1d900 cuilo!AbstractDialogFactory_Impl::CreateSfxDialog+0xcd
00c1d9b8 0e6651b5 00c1e570 f2f5896c 00000000 swlo!SwTextShell::InsertSymbol+0x446
00c1e2c4 0e65ef8f 00c1e570 00c1e2e4 533fb4f2 swlo!SwTextShell::Execute+0xaa5
00c1e2d0 533fb4f2 04f6cfb0 00c1e570 04f6cfb0 swlo!SfxStubSwTextShellExecute+0xf
00c1e2e4 534cb79c 0e65ef80 00c1e570 8a533de9 sfxlo!SfxShell::CallExec+0x12
00c1e36c 534d02bd 04f6cfb0 0ece2714 00c1e570 sfxlo!SfxDispatcher::Call_Impl+0x29c
00c1e3bc 534be523 04f6cfb0 0ece2714 00c1e570 sfxlo!SfxDispatcher::_Execute+0x20d
00c1e478 53512853 00c1e570 0ece2714 04f6cfb0 sfxlo!SfxBindings::Execute_Impl+0x523
00c1e66c 53512cb9 0d4c8310 0d64f744 0d64f770 sfxlo!SfxDispatchController_Impl::dispatch+0x893
00c1e6c8 5224b117 054ae5ac 0d64f744 0d64f770 sfxlo!SfxOfficeDispatch::dispatch+0x119
00c1e710 5224b190 00000000 0d64f740 00c1e738 fwklo!framework::GenericToolbarController::ExecuteHdl_Impl+0x67
00c1e720 5733fef4 00000000 0d64f740 0d4df7a0 fwklo!framework::GenericToolbarController::LinkStubExecuteHdl_Impl+0x10
00c1e738 53b5a41e 0d64f740 0d4df7a0 0d4df7a0 tllo!Link::Call+0x24
00c1e754 53b5aeda 0d4db498 53f37dc0 fffffffe vcllo!ImplHandleUserEvent+0x6e
00c1e864 53f2f00e 04c4f170 03fdfec8 00000016 vcllo!ImplWindowFrameProc+0x54a
00c1e884 53f3445c 00000016 0d4db498 03fdfec8 vcllo!SalFrame::CallCallback+0x2e
00c1e898 53f3760f 001602bc 0d4db498 0106eea0 vcllo!ImplHandleUserEvent+0x2c
00c1e93c 53f37e21 001602bc 00000482 00000000 vcllo!SalFrameWndProc+0x77f
00c1e98c 75f062fa 001602bc 00000482 00000000 vcllo!SalFrameWndProcW+0x61
00c1e9b8 75f06d3a 53f37dc0 001602bc 00000482 USER32!InternalCallWinProc+0x23
00c1ea30 75f077c4 00000000 53f37dc0 001602bc USER32!UserCallWinProcCheckWow+0x109
00c1ea90 75f0788a 53f37dc0 00000000 00c1eab4 USER32!DispatchMessageWorker+0x3bc
00c1eaa0 53ef0d26 00c1eac0 00000000 0106ddf8 USER32!DispatchMessageW+0xf
00c1eab4 53ef0e15 00c1eac0 001602bc 00000482 vcllo!ImplSalDispatchMessage+0x36
00c1eae8 53ef181e 00000001 00000000 0106ddf8 vcllo!ImplSalYield+0x55
00c1eb10 53e592ee 00000001 00000000 541b8520 vcllo!WinSalInstance::Yield+0xce
00c1eb28 53e5ab3c 00000001 00000000 00c1eb44 vcllo!ImplYield+0x8e
00c1eb38 53e58109 541b8520 00c1fac8 5bef59fd vcllo!Application::Yield+0xc
00c1eb44 5bef59fd 8a532478 00000000 01045bf0 vcllo!Application::Execute+0x29
00c1fac8 53e60032 00d56148 00000001 64e4dde5 sofficeapp!desktop::Desktop::Main+0x233d
00c1fae4 53e604af 00d56148 00c1fbec 5bf29df0 vcllo!ImplSVMain+0x42
00c1faf0 5bf29df0 8a53255c 01040000 01000023 vcllo!SVMain+0x2f
00c1fbec 0130100a 8a92ddfa 00c1fc04 0130103a sofficeapp!soffice_main+0x130
WARNING: Stack unwind information not available. Following frames may be wrong.
00c1fbf8 0130103a 01068290 00c1fc1c 01301078 soffice+0x100a
00c1fc04 01301078 00000002 01068290 00000002 soffice!main+0x1a
00c1fc1c 013012cb 01300000 00000000 01045bf0 soffice!main+0x58
00c1fc68 7710338a 7efde000 00c1fcb4 77919f72 soffice!main+0x2ab
00c1fc74 77919f72 7efde000 70db693f 00000000 kernel32!BaseThreadInitThunk+0xe
00c1fcb4 77919f45 0130119f 7efde000 00000000 ntdll!__RtlUserThreadStart+0x70
00c1fccc 00000000 0130119f 7efde000 00000000 ntdll!_RtlUserThreadStart+0x1b


STACK_COMMAND:  .cxr 0x0 ; kb

FOLLOWUP_IP: 
cuilo!VclBuilder::get<OKButton>+2e1 [c:\cygwin\home\tinderbox\master\include\vcl\builder.hxx @ 407]
09568ba1 83c40c          add     esp,0Ch

FAULTING_SOURCE_LINE:  c:\cygwin\home\tinderbox\master\include\vcl\builder.hxx

FAULTING_SOURCE_FILE:  c:\cygwin\home\tinderbox\master\include\vcl\builder.hxx

FAULTING_SOURCE_LINE_NUMBER:  407

SYMBOL_STACK_INDEX:  1

SYMBOL_NAME:  cuilo!VclBuilder::get<OKButton>+2e1

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: cuilo

IMAGE_NAME:  cuilo.dll

DEBUG_FLR_IMAGE_TIMESTAMP:  5459cdcf

FAILURE_BUCKET_ID:  STATUS_BREAKPOINT_80000003_cuilo.dll!VclBuilder::get_OKButton_

BUCKET_ID:  APPLICATION_FAULT_STATUS_BREAKPOINT_cuilo!VclBuilder::get_OKButton_+2e1

ANALYSIS_SOURCE:  UM

FAILURE_ID_HASH_STRING:  um:status_breakpoint_80000003_cuilo.dll!vclbuilder::get_okbutton_

FAILURE_ID_HASH:  {079474fd-c78b-dbe3-d766-fa7426c4b9e7}

Followup: MachineOwner
---------
Comment 1 V Stuart Foote 2014-11-05 20:39:55 UTC
Created attachment 108986 [details]
Clip of MS VS2012 assert error message
Comment 2 V Stuart Foote 2014-11-05 20:40:40 UTC
Created attachment 108987 [details]
WinDbg stack strace of all threads
Comment 3 V Stuart Foote 2014-11-05 20:45:22 UTC
Happening in Writer, Impress, Draw, and Calc components--but not Math which looks to not be using the dialog.
Comment 4 Adolfo Jayme Barrientos 2014-11-06 03:29:05 UTC
I noted that yesterday, but doesn’t happen for me in today’s build. Can you re-check?
Comment 5 V Stuart Foote 2014-11-06 04:03:23 UTC
On Windows 7 sp1, 64-bit en-US

Saw it on today's
Version: 4.4.0.0.alpha1+
Build ID: 3c58f0768049718fae3d47d5ebfa6c7485ad52b1
TinderBox: Win-x86@39, Branch:master, Time: 2014-11-05_06:43:51

Version: 4.4.0.0.alpha1+
Build ID: 768d22a83e7e6aae430b2e5e4ed28f2574aad12d
TinderBox: Win-x86@39, Branch:master, Time: 2014-11-04_09:19:00

The build from 29th still had the old style dialog, and did not error
Version: 4.4.0.0.alpha1+
Build ID: 62c125bbb4d27631af6cbcb498e765c0b215b734
TinderBox: Win-x86@39, Branch:master, Time: 2014-10-29_19:16:52
Comment 6 V Stuart Foote 2014-11-06 04:08:45 UTC
Just grabbed the 2014-11-01 TB39 build, assert error present there.

Version: 4.4.0.0.alpha1+
Build ID: 1baad070d8c2a38581cf33d803c5043f1974647f
TinderBox: Win-x86@39, Branch:master, Time: 2014-11-01_00:15:06
Comment 7 Adolfo Jayme Barrientos 2014-11-06 05:19:02 UTC
(In reply to V Stuart Foote from comment #6)
> Just grabbed the 2014-11-01 TB39 build, assert error present there.

Today’s November the sixth. You should download a current build. TB 39 contains a build for today. Re-test that instead of an outdated one. http://dev-builds.libreoffice.org/daily/master/Win-x86@39/current/
Comment 8 V Stuart Foote 2014-11-06 05:34:03 UTC
Still November 5th here in Texas-- but had to wait for the TB39 build for the 6th UTC to upload to the TB. Just got it.

Version: 4.4.0.0.alpha1+
Build ID: 8b21b5cbe78945b27525b4ce78ae3d981f90590f
TinderBox: Win-x86@39, Branch:master, Time: 2014-11-06_03:55:51

Sorry, still throwing the assert error--Writer, Impress, Calc, Draw
Comment 9 Chris Sherlock 2014-11-06 08:35:44 UTC
It's having problems either getting the button, or casting from a Window pointer to an OKButton pointer. Might need to split that assert into two asserts to determine which is which.
Comment 10 Commit Notification 2014-11-06 14:50:16 UTC
Chris Sherlock committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=ab2ed5a360e565299ae558b97bc39cf7aba1a81c

vcl: split asserts in VclBuilder::get() for fdo#85939

It will be available in 4.4.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 11 Chris Sherlock 2014-11-06 14:55:37 UTC
The above patch is not a fix, but should help us track down what's going on. When the next build occurs, can you attach the assert message?
Comment 12 V Stuart Foote 2014-11-06 15:11:56 UTC
(In reply to Chris Sherlock from comment #11)
> The above patch is not a fix, but should help us track down what's going on.
> When the next build occurs, can you attach the assert message?

@Chris, will do but will have to wait for the next TB39 build to post tonight.

@Adolpho, are you able role one to check before then? And guess I should probably ask, did you need us to keep poking at this? I am sure its been frustrating, and sorry if I've been a little dense.

Stuart
Comment 13 Chris Sherlock 2014-11-06 15:16:28 UTC
Does this by any chance happen on Linux at all?
Comment 14 V Stuart Foote 2014-11-06 23:42:05 UTC
Created attachment 109068 [details]
TB45 dbg build back trace of assert error (and crash)  on 32-bit Linux

(In reply to Chris Sherlock from comment #13)
> Does this by any chance happen on Linux at all?

Yes, we do get the same assert failure on 32-bit Linux, back trace attached.

On Fedora 20 32-bit with
Version: 4.4.0.0.alpha1+
Build ID: d59b9b4af36148e4d8df8f3e3492116d378642e2
TinderBox: Linux-rpm_deb-x86@45-TDF-dbg, Branch:master, Time: 2014-11-06_03:11:43
Comment 15 V Stuart Foote 2014-11-07 00:25:07 UTC
(In reply to Chris Sherlock from comment #13)
> Does this by any chance happen on Linux at all?
Comment 16 Commit Notification 2014-11-07 14:35:52 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=8da62747d0d870db3b9746b765d18b2a62e4b31b

Resolves: fdo#85939 its not an OKButton anymore

It will be available in 4.4.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 17 V Stuart Foote 2014-11-07 14:45:15 UTC
Created attachment 109087 [details]
bt following core dump for assert error in VCL builder.hxx

On Fedora 20 64-bit with
Version: 4.4.0.0.alpha2+
Build ID: 0adb90115596ce69e1d80becdaa39e23197fe454
TinderBox: Linux-rpm_deb-x86_64@46-TDF-dbg, Branch:master, Time: 2014-11-06_23:39:21

On the console get this warning and core dump...
warn:vcl.layout:3115:1:include/vcl/builder.hxx:406: .ui widget "ok" needs to correspond to vcl type 8OKButton
soffice.bin: /home/buildslave/source/libo-core/include/vcl/builder.hxx:408: T* VclBuilder::get(T*&, const rtl::OString&) [with T = OKButton]: Assertion `dynamic_cast<T*>(w)' failed.
Aborted (core dumped)
Comment 18 V Stuart Foote 2014-11-07 14:48:05 UTC
(In reply to Commit Notification from comment #16)
> Caolán McNamara committed a patch related to this issue.
> It has been pushed to "master":
> 
> http://cgit.freedesktop.org/libreoffice/core/commit/
> ?id=8da62747d0d870db3b9746b765d18b2a62e4b31b

Oops, sorry missed this commit while I was gathering the additional bt. 

Thanks all!
Comment 19 V Stuart Foote 2014-11-07 15:24:50 UTC
Created attachment 109091 [details]
bt following core dump for asser error in VCL builder.hxx more complete symbols

Swapping out the attached bt, I hadn't added in the full gcc symbols on this 64-bit Fedora VM.

Sorry for the noise.
Comment 20 Chris Sherlock 2014-11-07 21:25:55 UTC
Is that warning happening after Caolan's commit?
Comment 21 V Stuart Foote 2014-11-07 21:40:08 UTC
(In reply to Chris Sherlock from comment #20)
> Is that warning happening after Caolan's commit?
No, for the prior builds that include your split of the Assert.
Comment 22 V Stuart Foote 2014-11-08 19:25:57 UTC
fix verified with debug TB39

Version: 4.4.0.0.alpha2+
Build ID: e7fbe37c56d78af757f975b280bf113fb2fe40fd
TinderBox: Win-x86@39, Branch:master, Time: 2014-11-08_12:46:44