Crash when opening a 3MB textbundle file

Testing version: Version 1.0 (2952)

What were you doing: open a textbundle file approximately 3mb in size.

What feature did you use: file->open.

What happened: crash and crash report generated.

What did you expect to happen: open the textbundle file successfully.

STACK BACKTRACE:


Translated Report (Full Report Below)

Process: Panda [92142]
Path: /Applications/Panda.app/Contents/MacOS/Panda
Identifier: net.shinyfrog.panda
Version: 1.0 (2952)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
User ID: 501

Date/Time: 2022-05-30 18:10:26.9460 +0800
OS Version: macOS 12.3.1 (21E258)
Report Version: 12
Anonymous UUID: C1227250-7E48-A317-DDCE-BDD7CD605374

Sleep/Wake UUID: BE01F540-2D91-4EDF-9516-6CA4FC3C2D2D

Time Awake Since Boot: 1200000 seconds
Time Since Wake: 16490 seconds

System Integrity Protection: disabled

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Application Specific Information:
Assertion failed: (pos_ > minPos_), function unsafePeekPreviousCharacter, file Go.h, line 56.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x19e310db8 __pthread_kill + 8
1 libsystem_pthread.dylib 0x19e345ee0 pthread_kill + 288
2 libsystem_c.dylib 0x19e280340 abort + 168
3 libsystem_c.dylib 0x19e27f754 __assert_rtn + 272
4 PolarMark 0x101154f40 Ice::Go::unsafePeekPreviousCharacter() (.cold.1) + 40
5 PolarMark 0x1010ca6a0 Ice::Go::unsafePeekPreviousCharacter() + 44
6 PolarMark 0x10112b21c Ice::Inline::Url::matchPreviousUnicodeDomain(Ice::GoLines&) + 72
7 PolarMark 0x101129e78 Ice::Inline::Url::matchWithValidTopLevelDomain(Ice::InlineParser&, Ice::Node*, Ice::GoLines&) + 376
8 PolarMark 0x101131f88 Ice::InlineParser::parseNode(Ice::Node*, Ice::InlineRuleMap&) + 396
9 PolarMark 0x101131ddc Ice::InlineParser::parseBlock(Ice::Node*) + 80
10 PolarMark 0x1010e6a7c Ice::Parser::parse(std::__1::basic_string<char16_t, std::__1::char_traits<char16_t>, std::__1::allocator<char16_t> > const&, Ice::RuleConfig&) + 176
11 PolarMark 0x1010cd1cc Ice::Tree::parse(std::__1::basic_string<char16_t, std::__1::char_traits<char16_t>, std::__1::allocator<char16_t> >, Ice::Node*) + 40
12 PolarMark 0x1010cd5e0 Ice::Tree::replace(Ice::Range, std::__1::basic_string<char16_t, std::__1::char_traits<char16_t>, std::__1::allocator<char16_t> > const&) + 836
13 PolarMark 0x1010efe3c -[PMKAST replaceRange:withMarkdown:] + 148
14 MDTextKit 0x100f1257c -[MDTextStorage updateASTWithChanges:] + 336
15 MDTextKit 0x100f12094 -[MDTextStorage processChanges] + 124
16 MDTextKit 0x100f11fec -[MDTextStorage processEditing] + 32
17 UIFoundation 0x1a1e3ad6c -[NSTextStorage endEditing] + 116
18 Foundation 0x19f3d7880 -[NSMutableAttributedString replaceCharactersInRange:withAttributedString:] + 280
19 MDTextKit 0x100f006a4 -[MDEditorController loadString:intoTextView:] + 144
20 Panda 0x100bc9d38 0x100bc4000 + 23864
21 Panda 0x100bc7b80 0x100bc4000 + 15232
22 AppKit 0x1a113f668 -[NSDocument addWindowController:] + 232
23 Panda 0x100bc6d70 0x100bc4000 + 11632
24 AppKit 0x1a14cb484 __80-[NSDocumentController openDocumentWithContentsOfURL:display:completionHandler:]_block_invoke.820 + 168
25 AppKit 0x1a14d55a0 ___NSMainRunLoopPerformBlockInModes_block_invoke + 44
26 CoreFoundation 0x19e412460 CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK + 28
27 CoreFoundation 0x19e4122d8 __CFRunLoopDoBlocks + 412
28 CoreFoundation 0x19e4112e8 __CFRunLoopRun + 1720
29 CoreFoundation 0x19e410490 CFRunLoopRunSpecific + 600
30 HIToolbox 0x1a7030dd8 RunCurrentEventLoopInMode + 292
31 HIToolbox 0x1a7030a64 ReceiveNextEventCommon + 324
32 HIToolbox 0x1a7030908 _BlockUntilNextEventMatchingListInModeWithFilter + 72
33 AppKit 0x1a0f6fb2c _DPSNextEvent + 860
34 AppKit 0x1a0f6e424 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1328
35 AppKit 0x1a0f605f0 -[NSApplication run] + 596
36 AppKit 0x1a0f31d08 NSApplicationMain + 1132
37 Panda 0x100bc9410 0x100bc4000 + 21520
38 dyld 0x100f99088 start + 516

Hello and thanks for reporting this issue.

The crash seems to be caused by a problem in our Parser. Do you mind sharing the textbundle file here or in private for tests?

the textbundle file was sent by mail. thanks for response.

Sure I don’t mind. please check the attached. it’s a note with some special characters in it I’d guess.

(Attachment Python CHP NOTES.textbundle.zip is missing)

sorry I have to try resending the file with ‘.md’ suffix due to the email upload policy. please change the extension back to .zip and uncompress then get the .textbundle.

Python CHP NOTES.md (2.64 MB)

Thanks a lot. Luckily Panda’s development version can open the textbundle (but not version 2952). The error was probably connected to an URL parsing bug we recently fix. This and other bug fixes will come with the next update as soon as possible.

You’re welcome. Sure. I’d retest it when new beta is out.

1 Like