Komodo / KomodoEdit

Komodo Edit is a fast and free multi-language code editor. Written in JS, Python, C++ and based on the Mozilla platform.
http://www.komodoide.com/komodo-edit
Other
2.15k stars 302 forks source link

Komodo IDE 10.2.1 on macOS 10.12.4 hanging #2424

Closed pemcg closed 7 years ago

pemcg commented 7 years ago

Short Summary

I'm running Komodo IDE 10.2.1 on MacOS 10.12.4. I haven't used Komodo for a while so I'm not sure if the issues are related to the 10.12.4 upgrade that I did this morning, but I've had 2 cases today of Komodo hanging (infinite beachball). I've also noticed generally that the UI is frustratingly slow scrolling up and down, it's not a smooth experience at all.

Both of the hangs have been with about 5-6 files open, relatively small files (<400 lines)

Note From Developer - Please Read

A nightly is now available with a fix for this hang, you can download it here:

http://downloads.activestate.com/Komodo/nightly/komodoide/latest-10.2.x/

If you are still experiencing this issue with the latest build please supply a backtrace of Komodo in this ticket (when it is hanging).

To get the backtrace take the following steps:

Steps to Reproduce

Random

Expected results

Actual results

Platform Information

Komodo IDE for Mac Komodo 10.2.1 *Operating System (and version) MacOS 10.12.4

Additional Information

Attached is the text of the "Report the problem to Apple" output when I did a force quit. komodo_hang.txt

Naatan commented 7 years ago

Updated the instructions again, we should be able to get proper crash reports when you kill the process using SIGABRT. Let's give it a try.

mrochford commented 7 years ago

@Naatan my one liner lasted less then a hour :-)

Naatan commented 7 years ago

I still incorporated it into the new command :)

tuckdesign commented 7 years ago

@Naatan You removed lldb instructions from post when you added kill line :)

Naatan commented 7 years ago

@tuckdesign yes, that was intentional :) The kill line should give a crash reporter which will send us the backtrace info we need. Please let me know if you do not get a crash reporter dialog.

tuckdesign commented 7 years ago

Just had hang and yes, got crash reporter.

coreground commented 7 years ago

https://pastebin.com/4GsTWAiv

tuckdesign commented 7 years ago

@Naatan One more sent with crash reporter. Hope you are getting those.

Naatan commented 7 years ago

We're getting them, thanks! :)

Naatan commented 7 years ago

Hi guys, we're looking at possible culprits for the hangs and one possibility is our apsw dependency, which was introduced in Komodo 9.3.0. Unfortunately we still haven't had a consistent repro so we cannot properly test whether this is the cause. Could some of you try installing Komodo IDE 9.2.1 to see if this version has hangs for them also?

You can download Komodo 9.2.1 here: http://downloads.activestate.com/Komodo/releases/archive/9.x/9.2.1/

If that does not work, try updating the ActivePython version contained in Komodo 10:

Note this is extremely experimental. Also keep in mind that this is licensed code, so your Komodo license still applies.

hughdbrown commented 7 years ago

I upgraded to 10.12.5 as recommended up thread. I still get hangs:

Date/Time:       2017-05-20 07:51:43 -0600
OS Version:      Mac OS X 10.12.5 (Build 16F73)
Architecture:    x86_64h
Report Version:  25

Data Source:     Stackshots

Command:         komodo
Path:            /Applications/Komodo IDE 10.app/Contents/MacOS/komodo
Version:         10.2 (10.2.2)
Parent:          launchd [1]
PID:             25353
Naatan commented 7 years ago

@hughdbrown that's an old recommendation, please see my previous comment - https://github.com/Komodo/KomodoEdit/issues/2424#issuecomment-302768895

Naatan commented 7 years ago

Anyone following the suggestions from https://github.com/Komodo/KomodoEdit/issues/2424#issuecomment-302768895 ? Any hangs so far?

Please report back, if a solution is working and you don't tell us about it we won't know it works ... ;)

kevinlieser commented 7 years ago

For me it only crashed once with macOS 10.12.5. When I reported that 10.12.5 did not work and also crashes, that was the last crash for me. Since that date (2 weeks) Komodo is running without crash. Yesterday I updated to 10.12.6 Beta.

Naatan commented 7 years ago

That's good to hear. I've definitely seen reports come in from 10.12.5 though, so it does not appear 10.12.5 resolves the issue.

NeilFraser commented 7 years ago

Back from vacation. I installed 10.2.2 a few minutes ago, and sent my first hang report from it just now.

Naatan commented 7 years ago

@NeilFraser do you mean you installed 10.2.2 from our website or from the link I shared on this ticket?

tuckdesign commented 7 years ago

@Naatan Ok, I installed Komodo 9.2.1 and will let you know do I have hangs with it too.

Naatan commented 7 years ago

@tuckdesign those are old instructions. Please see the dev note in the first post.

NeilFraser commented 7 years ago

@Naatan Yes, just reported my second hang of the day with 10.2.2 from the link on this ticket. :(

Naatan commented 7 years ago

Thanks @NeilFraser, I'll see about preparing another build with more extensive changes.

Naatan commented 7 years ago

I've updated the link in the dev note with a new build

vrurg commented 7 years ago

The build from the link stood up longer than other but in an hour failed as usual.

tuckdesign commented 7 years ago

Same on my side. Yesterday was working fine, today just started it and it got hang.

NeilFraser commented 7 years ago

Same experience as @vrurg and @tuckdesign, last night v10.2.2 build 89897 seemed to be more stable than usual. But this morning I got two back-to-back hangs.

Maybe Komodo just isn't a Friday kind of IDE.

Naatan commented 7 years ago

Thanks guys, I'll be posting another build today.

Naatan commented 7 years ago

Updated the build linked in the dev instructions, please give it a try.

Be mindful of features no longer working (such as codeintel) as this build contains potentially breaking changes.

tuckdesign commented 7 years ago

This version lasted for 10min :( and got a hang. Still sending reports with crash reporter...

Naatan commented 7 years ago

@tuckdesign actually that crash was of a different cause, please continue trying this build.

tuckdesign commented 7 years ago

Hang again, with latest build. Sent report.

Naatan commented 7 years ago

thanks @tuckdesign, for some reason I can't get proper symbols from your report. When the hang happens next time can you do the lldb steps again? I'll update the instructons accordingly.

tuckdesign commented 7 years ago

komodohang_05_29_2017.txt

Naatan commented 7 years ago

Thanks @tuckdesign Looks like it's still the same hang.

We're testing something more destructive internally to hopefully narrow down the issue.

For the record, we're fairly certain the issue is related to Python's process spawning logic. It uses process forking to spawn a process which according to Apple support is the likely cause of a deadlock like the one we are seeing. The challenge now is finding a way around this.

tuckdesign commented 7 years ago

komodohang_05_30_2017_10am.txt

tuckdesign commented 7 years ago

komodohang_05_30_2017_10_16am.txt

tuckdesign commented 7 years ago

When it starts it goes on and on: komodohang_05_30_2017_11_10am.txt

tuckdesign commented 7 years ago

komodohang_05_30_2017_11_53am.txt @Naatan Not sure should i send it each time or you have enough info???

NeilFraser commented 7 years ago

Komodo-10.2.2-89898-1.txt

NeilFraser commented 7 years ago

Komodo-10.2.2-89898-2.txt

dch commented 7 years ago

huge thanks @Naatan and the ActiveState team for working on this thorny issue. Komodo is a great tool and part of my daily workflow, and we really appreciate it.

that being said, I get a hang with this build too :-( and a weird output from lldb. My ps aux.. follows.

debug.txt

 ps aux | grep komodo | grep -v codeintel | grep -v grep
dch              10194   0.0  0.0  2472628  11488   ??  S    Wed02PM   0:00.40 /Users/dch/Applications/Komodo.app/Contents/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python /Users/dch/Library/Application Support/KomodoIDE/10.2/XRE/extensions/komodo_terminal@activestate.com/content/../pylib/butterfly/butterfly.server.py --unsecure
dch              38516   0.0  2.1  4412228 692796   ??  S     3:57PM   0:59.13 /private/var/folders/rv/8w04tcb13kqbxcyqprhrvvfm0000z_/T/AppTranslocation/00255370-BC32-48EC-817F-5B7565942289/d/Komodo.app/Contents/MacOS/komodo -psn_0_1622412
Defman21 commented 7 years ago

The first one is a process of the "Terminal" add-on. https://github.com/Defman21/komodo-terminal-butterfly

Naatan commented 7 years ago

Thanks guys, I think we have enough logs for the moment. We're currently trying to reproduce the issue so we can test something out, unfortunately it's not that simple for us to reproduce.

If anyone feels so inclined, this is extremely experimental:

Thanks everyone for your cooperation and patience.

NeilFraser commented 7 years ago

Found the fork thread:

  thread #41: tid = 0x1ba479, 0x00007fffcbae731e libsystem_kernel.dylib`__ulock_wait + 10
    frame #0: 0x00007fffcbae731e libsystem_kernel.dylib`__ulock_wait + 10
    frame #1: 0x00007fffcbbcaaff libsystem_platform.dylib`_os_ulock_wait + 25
    frame #2: 0x00007fffcbbca3d2 libsystem_platform.dylib`_os_unfair_lock_lock_slow + 130
    frame #3: 0x00007fffcb0dc4a3 libobjc.A.dylib`_objc_atfork_prepare + 281
    frame #4: 0x00007fffca411a4a libSystem.B.dylib`libSystem_atfork_prepare + 26
    frame #5: 0x00007fffcb9fe414 libsystem_c.dylib`fork + 12
    frame #6: 0x0000000124c9b9b4 _posixsubprocess.so`subprocess_fork_exec + 1412
    frame #7: 0x0000000114b0d42b Python`PyEval_EvalFrameEx + 18011
    ...

Then returned the thread:

(lldb) t 41
* thread #41: tid = 0x1ba479, 0x00007fffcbae731e libsystem_kernel.dylib`__ulock_wait + 10
    frame #0: 0x00007fffcbae731e libsystem_kernel.dylib`__ulock_wait + 10
libsystem_kernel.dylib`__ulock_wait:
->  0x7fffcbae731e <+10>: jae    0x7fffcbae7328            ; <+20>
    0x7fffcbae7320 <+12>: movq   %rax, %rdi
    0x7fffcbae7323 <+15>: jmp    0x7fffcbadfcaf            ; cerror_nocancel
    0x7fffcbae7328 <+20>: retq   
(lldb) thread return
* thread #41: tid = 0x1ba479, 0x00007fffcbbcaaff libsystem_platform.dylib`_os_ulock_wait + 25
    frame #0: 0x00007fffcbbcaaff libsystem_platform.dylib`_os_ulock_wait + 25
libsystem_platform.dylib`_os_ulock_wait:
->  0x7fffcbbcaaff <+25>: movl   %eax, %ebx
    0x7fffcbbcab01 <+27>: cmpl   $-0x1, %ebx
    0x7fffcbbcab04 <+30>: jne    0x7fffcbbcab15            ; <+47>
    0x7fffcbbcab06 <+32>: callq  0x7fffcbbcc2f4            ; symbol stub for: __error
(lldb) quit
Quitting LLDB will detach from one or more processes. Do you really want to proceed: [Y/n] y

Komodo continues to beach ball. Full stack (from before the thread return) attached. Let me know if I'm doing this right.

Also, the instructions say "Copy the output into Komodo". I think you might be forgetting something... :)

Komodo-10.2.2-89898-3.txt

Naatan commented 7 years ago

Lol, good point :) Thanks for trying that @NeilFraser !

tuckdesign commented 7 years ago

@Naatan Tried one experiment: Removed Python.framework from Komodo IDE and created symlink to system's Python.Framework (/System/Library/Frameworks/Python.framework), and it looked fine for some time, but got hang again :(

mrochford commented 7 years ago

Updated command: lldb -p $(ps aux | grep komodo | grep -v codeintel | grep -v grep | awk '{print $2}') -b -o 'thread backtrace all' 2>&1 > $(date +'%Y%m%d-%H%M%S').txt

Feel free to update the name of the file to something else.

20170531-074120.txt

mrochford commented 7 years ago

The more crazy command to capture the lldb output into a nicely named file. lldb -p $(ps aux | grep komodo | grep -v codeintel | grep -v grep | awk '{print $2}') -b -o 'thread backtrace all' 2>&1 > $(/Applications/Komodo\ IDE\ 10.app/Contents/MacOS/komodo --version | awk {'print $1"-"$3"-"$5"-"'} | sed 's#)##')$(date +'%Y%m%d-%H%M%S').txt

mrochford commented 7 years ago

Saving a file.

Komodo-10.2.2-89895-20170531-092705.txt

Naatan commented 7 years ago

lol @mrochford, nice :) I'll keep that around for when we need more lldb outputs. I'm preparing a build with some additional logging so we can hopefully trace the code at fault.

@tuckdesign Only Python3 would be able to truly resolve this issue, and our code is not Python3 compatible. We're looking for a bandaid solution in the interim.

vrurg commented 7 years ago

Tried the 'thread return' thing and the result is the same as with @NeilFraser – mening, there is no restult. Attached is the full trace after the attempt to unlock.

Komodo-10.2.2-89897-20170531-154506.txt