Page MenuHome

Blender Crashes when using Mac trackpad Pinching(zoom) in Node Editor
Closed, ResolvedPublicBUG

Description

System Information
MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)
Operating system: macOS Mojave 10.14.5
Graphics card: Intel Iris Plus Graphics 640 1536 MB

Blender Version
Version: 2.80 (sub 74), branch: master, commit date: 2019-05-31 22:45, hash: cc600de6695a, type: Release
build date: 2019-06-01, 01:18:44

Short description of error

Blender crashes on every single time using trackpad pinch (zoom) in Node Editor.
Using zoom function through view>zoom in/out works fine.
Once in a while when trackpad pinch does not crash blender, the node editor will turn blank and all function in Node Editor cease to function. (probably stuck zoomed in at the bottom right of the screen [see scroll bar in screen shot])


The only way I found to fix it is to reload the UI.

Trackpad pinching(zoom) in sidebar causes it to be stuck in either too big/too small unable to get to a size in between.

Event Timeline

I cannot reproduce it on blender head. Any pinch zooming in the node editor or sidebar works well. Can you please try with the latest version ?

MacBook Pro (Retina, 15-inch, Mid 2015)
OSX 10.12.6

System Information
Operating system: Darwin-16.7.0-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon R9 M370X OpenGL Engine ATI Technologies Inc. 4.1 ATI-1.51.8

Blender Version
version: 2.80 (sub 74), branch: master, commit date: 2019-06-11 19:13, hash: rB09c32a15d2f9

Jean First (robbott) lowered the priority of this task from 90 to 30.Jun 11 2019, 10:14 PM

Blender Version
Version: 2.80 (sub 74), branch: blender2.7, commit date: 2019-06-11 21:45, hash: d93a7290e506

Downloaded the newest version and it worked fine until I changed the settings.

I probably figured out what's causing the crash. Here are 4 scenarios.

  1. Fresh install with factory settings - No crash and able to zoom without any problem. (mind the lag. due to recording + blender)

  1. Factory Setting with Continued zoom - object zooms in all the way/out unable to get in between.

  1. Factory Setting with Continued zoom + Zoom to mouse position - Causes no crash but the node editor will turn blank and all function in Node Editor cease to function.
  1. Factory Setting with Continued zoom + Zoom to mouse position - Blender Crashes

Thank you for the detailed report. I was able to reproduce it.

Change Preferences > Navigation > Zoom > Zoom Method to "Continue" and pinch zooming in the node editor crashes blender head (version: 2.80 (sub 74), branch: master, commit date: 2019-06-12 14:58, hash: rB04c54dec4456)

backtrace:

Process:               blender [38888]
Path:                  /Users/USER/*/blender.app/Contents/MacOS/blender
Identifier:            org.blenderfoundation.blender
Version:               2.80 (2.80 2019-06-12, Blender Foundation)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           blender [38888]
User ID:               501

Date/Time:             2019-06-12 19:14:45.010 +0200
OS Version:            Mac OS X 10.12.6 (16G1618)
Report Version:        12
Anonymous UUID:        50A54022-23B8-2012-DCDE-2106D951A58A

Sleep/Wake UUID:       A545C76E-AAA2-47FB-9B97-85207FFAED83

Time Awake Since Boot: 4100000 seconds
Time Since Wake:       1100 seconds

System Integrity Protection: enabled

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

Exception Type:        EXC_BAD_ACCESS (SIGBUS)
Exception Codes:       KERN_PROTECTION_FAILURE at 0x0000000123bd6004
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Bus error: 10
Termination Reason:    Namespace SIGNAL, Code 0xa
Terminating Process:   exc handler [0]

VM Regions Near 0x123bd6004:
    VM_ALLOCATE            0000000123a96000-0000000123bd6000 [ 1280K] rw-/rwx SM=PRV  
--> __TEXT                 0000000123bd6000-0000000123bdc000 [   24K] r-x/rwx SM=COW  /Users/USER/*/blender.app/Contents/Resources/2.80/python/lib/python3.7/lib-dynload/math.cpython-37m-darwin.so
    __DATA                 0000000123bdc000-0000000123bde000 [    8K] rw-/rwx SM=COW  /Users/USER/*/blender.app/Contents/Resources/2.80/python/lib/python3.7/lib-dynload/math.cpython-37m-darwin.so

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   org.blenderfoundation.blender 	0x0000000113b693c2 immAttr3ubv + 66
1   org.blenderfoundation.blender 	0x0000000112415df1 UI_view2d_multi_grid_draw + 433
2   org.blenderfoundation.blender 	0x00000001125a3f91 drawnodespace + 1105
3   org.blenderfoundation.blender 	0x000000011262d067 ED_region_do_draw + 359
4   org.blenderfoundation.blender 	0x000000010e7ba3a6 wm_draw_update + 1798
5   org.blenderfoundation.blender 	0x000000010e7b7fc0 WM_main + 48
6   org.blenderfoundation.blender 	0x000000010e2db2af main + 927
7   libdyld.dylib                 	0x00007fffc3f3c235 start + 1

Thread 1:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   libc++.1.dylib                	0x00007fffc2a804cd std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3   org.blenderfoundation.blender 	0x000000010f86ab33 IlmThread_2_3::Semaphore::wait() + 147
4   org.blenderfoundation.blender 	0x000000010f868092 IlmThread_2_3::(anonymous namespace)::DefaultWorkerThread::run() + 66
5   org.blenderfoundation.blender 	0x000000010f86a587 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (IlmThread_2_3::Thread::*)(), IlmThread_2_3::Thread*> >(void*) + 663
6   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
7   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
8   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 2:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   libc++.1.dylib                	0x00007fffc2a804cd std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3   org.blenderfoundation.blender 	0x000000010f86ab33 IlmThread_2_3::Semaphore::wait() + 147
4   org.blenderfoundation.blender 	0x000000010f868092 IlmThread_2_3::(anonymous namespace)::DefaultWorkerThread::run() + 66
5   org.blenderfoundation.blender 	0x000000010f86a587 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (IlmThread_2_3::Thread::*)(), IlmThread_2_3::Thread*> >(void*) + 663
6   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
7   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
8   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 3:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   libc++.1.dylib                	0x00007fffc2a804cd std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3   org.blenderfoundation.blender 	0x000000010f86ab33 IlmThread_2_3::Semaphore::wait() + 147
4   org.blenderfoundation.blender 	0x000000010f868092 IlmThread_2_3::(anonymous namespace)::DefaultWorkerThread::run() + 66
5   org.blenderfoundation.blender 	0x000000010f86a587 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (IlmThread_2_3::Thread::*)(), IlmThread_2_3::Thread*> >(void*) + 663
6   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
7   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
8   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 4:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   libc++.1.dylib                	0x00007fffc2a804cd std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3   org.blenderfoundation.blender 	0x000000010f86ab33 IlmThread_2_3::Semaphore::wait() + 147
4   org.blenderfoundation.blender 	0x000000010f868092 IlmThread_2_3::(anonymous namespace)::DefaultWorkerThread::run() + 66
5   org.blenderfoundation.blender 	0x000000010f86a587 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (IlmThread_2_3::Thread::*)(), IlmThread_2_3::Thread*> >(void*) + 663
6   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
7   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
8   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 5:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   libc++.1.dylib                	0x00007fffc2a804cd std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3   org.blenderfoundation.blender 	0x000000010f86ab33 IlmThread_2_3::Semaphore::wait() + 147
4   org.blenderfoundation.blender 	0x000000010f868092 IlmThread_2_3::(anonymous namespace)::DefaultWorkerThread::run() + 66
5   org.blenderfoundation.blender 	0x000000010f86a587 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (IlmThread_2_3::Thread::*)(), IlmThread_2_3::Thread*> >(void*) + 663
6   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
7   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
8   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 6:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   libc++.1.dylib                	0x00007fffc2a804cd std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3   org.blenderfoundation.blender 	0x000000010f86ab33 IlmThread_2_3::Semaphore::wait() + 147
4   org.blenderfoundation.blender 	0x000000010f868092 IlmThread_2_3::(anonymous namespace)::DefaultWorkerThread::run() + 66
5   org.blenderfoundation.blender 	0x000000010f86a587 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (IlmThread_2_3::Thread::*)(), IlmThread_2_3::Thread*> >(void*) + 663
6   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
7   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
8   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 7:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   libc++.1.dylib                	0x00007fffc2a804cd std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3   org.blenderfoundation.blender 	0x000000010f86ab33 IlmThread_2_3::Semaphore::wait() + 147
4   org.blenderfoundation.blender 	0x000000010f868092 IlmThread_2_3::(anonymous namespace)::DefaultWorkerThread::run() + 66
5   org.blenderfoundation.blender 	0x000000010f86a587 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (IlmThread_2_3::Thread::*)(), IlmThread_2_3::Thread*> >(void*) + 663
6   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
7   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
8   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 8:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   libc++.1.dylib                	0x00007fffc2a804cd std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47
3   org.blenderfoundation.blender 	0x000000010f86ab33 IlmThread_2_3::Semaphore::wait() + 147
4   org.blenderfoundation.blender 	0x000000010f868092 IlmThread_2_3::(anonymous namespace)::DefaultWorkerThread::run() + 66
5   org.blenderfoundation.blender 	0x000000010f86a587 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (IlmThread_2_3::Thread::*)(), IlmThread_2_3::Thread*> >(void*) + 663
6   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
7   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
8   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 9:
0   libsystem_kernel.dylib        	0x00007fffc406b44e __workq_kernreturn + 10
1   libsystem_pthread.dylib       	0x00007fffc4155621 _pthread_wqthread + 1426
2   libsystem_pthread.dylib       	0x00007fffc415507d start_wqthread + 13

Thread 10:: com.apple.audio.IOThread.client
0   libsystem_kernel.dylib        	0x00007fffc406334a mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x00007fffc4062797 mach_msg + 55
2   com.apple.audio.CoreAudio     	0x00007fffae2a6935 HALB_MachPort::SendMessageWithReply(unsigned int, unsigned int, unsigned int, unsigned int, mach_msg_header_t*, bool, unsigned int) + 127
3   com.apple.audio.CoreAudio     	0x00007fffae2a68a6 HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int) + 42
4   com.apple.audio.CoreAudio     	0x00007fffae2a38d0 HALC_ProxyIOContext::IOWorkLoop() + 1196
5   com.apple.audio.CoreAudio     	0x00007fffae2a3264 HALC_ProxyIOContext::IOThreadEntry(void*) + 128
6   com.apple.audio.CoreAudio     	0x00007fffae2a2fa3 HALB_IOThread::Entry(void*) + 75
7   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
8   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
9   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 11:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   org.blenderfoundation.blender 	0x000000010e599b5c task_scheduler_thread_run + 684
3   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
4   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
5   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 12:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   org.blenderfoundation.blender 	0x000000010e599b5c task_scheduler_thread_run + 684
3   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
4   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
5   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 13:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   org.blenderfoundation.blender 	0x000000010e599b5c task_scheduler_thread_run + 684
3   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
4   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
5   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 14:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   org.blenderfoundation.blender 	0x000000010e599b5c task_scheduler_thread_run + 684
3   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
4   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
5   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 15:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   org.blenderfoundation.blender 	0x000000010e599b5c task_scheduler_thread_run + 684
3   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
4   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
5   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 16:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   org.blenderfoundation.blender 	0x000000010e599b5c task_scheduler_thread_run + 684
3   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
4   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
5   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 17:
0   libsystem_kernel.dylib        	0x00007fffc406abf2 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fffc41567fa _pthread_cond_wait + 712
2   org.blenderfoundation.blender 	0x000000010e599b5c task_scheduler_thread_run + 684
3   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
4   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
5   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 18:: com.apple.NSEventThread
0   libsystem_kernel.dylib        	0x00007fffc406334a mach_msg_trap + 10
1   libsystem_kernel.dylib        	0x00007fffc4062797 mach_msg + 55
2   com.apple.CoreFoundation      	0x00007fffae73d354 __CFRunLoopServiceMachPort + 212
3   com.apple.CoreFoundation      	0x00007fffae73c7e1 __CFRunLoopRun + 1361
4   com.apple.CoreFoundation      	0x00007fffae73c034 CFRunLoopRunSpecific + 420
5   com.apple.AppKit              	0x00007fffac37ef02 _NSEventThread + 205
6   libsystem_pthread.dylib       	0x00007fffc415593b _pthread_body + 180
7   libsystem_pthread.dylib       	0x00007fffc4155887 _pthread_start + 286
8   libsystem_pthread.dylib       	0x00007fffc415508d thread_start + 13

Thread 19:
0   libsystem_kernel.dylib        	0x00007fffc406b44e __workq_kernreturn + 10
1   libsystem_pthread.dylib       	0x00007fffc415548e _pthread_wqthread + 1023
2   libsystem_pthread.dylib       	0x00007fffc415507d start_wqthread + 13

Thread 20:
0   libsystem_kernel.dylib        	0x00007fffc406b44e __workq_kernreturn + 10
1   libsystem_pthread.dylib       	0x00007fffc4155621 _pthread_wqthread + 1426
2   libsystem_pthread.dylib       	0x00007fffc415507d start_wqthread + 13

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000123bd5ffc  rbx: 0x0000000000000002  rcx: 0x0000000000000008  rdx: 0x0000000123bd5f19
  rdi: 0x0000000000000001  rsi: 0x0000000000000003  rbp: 0x00007fff51a6f7b0  rsp: 0x00007fff51a6f7b0
   r8: 0x0000000000001919   r9: 0x0000000000000000  r10: 0x00007f8552c005e8  r11: 0x00007f843effa590
  r12: 0x00007f8552b08bd8  r13: 0x00000000070ce030  r14: 0x0000000000000000  r15: 0x0000000000000001
  rip: 0x0000000113b693c2  rfl: 0x0000000000010202  cr2: 0x0000000123bd6004
  
Logical CPU:     6
Error Code:      0x00000007
Trap Number:     14
Bastien Montagne (mont29) raised the priority of this task from 30 to 50.
Brecht Van Lommel (brecht) changed the subtype of this task from "Report" to "Bug".Feb 11 2020, 9:28 AM

@Clément Foucault (fclem) this crash occurs in the drawing code,
UI_view2d_multi_grid_draw > immAttr3ubv.

There's a bug with zooming and we have a case where
v2d->cur.xmax is equal to something like 143427698163712.000000.
This seems to lead to a crash. Bus error: 10.

Maybe there should be some kind of verification to avoid crashes?

0   blender          0x000000010c5890ab immAttr3ubv + 59
1   blender          0x000000010b9275ad UI_view2d_multi_grid_draw + 429
2   blender          0x000000010c1556ac drawnodespace + 524

To reproduce: "Continue" Zoom Method + "Zoom to mouse position" and try zooming in with the trackpad (macOS) in Node Editor.

What is happening is that it tries to draw too much line and the allocation in immBeginAtMost(GPU_PRIM_LINES, vertex_count); fails or we have a buffer overflow. Maybe we could check if vertex_count is really large and clamp it. Inside the loop we could decrement the vertex count and bail out if it is arrives at 4 (the remaining vertex count after the loop). For the moment DEFAULT_INTERNAL_BUFFER_SIZE (4 * 1024 * 1024) so knowing the vertex format is 10byte per verts you can clamp it to something like 40 000 (this would be plenty enough already even if the real limit is 419430).

Yevgeny Makarov (jenkm) closed this task as Resolved.Thu, Oct 29, 10:20 PM