[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#33135: 27.0.50; (make-thread) TRAMP interactive freeze macOS 10.14
From: |
Alan Third |
Subject: |
bug#33135: 27.0.50; (make-thread) TRAMP interactive freeze macOS 10.14 |
Date: |
Wed, 24 Oct 2018 11:53:44 +0100 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
On Wed, Oct 24, 2018 at 12:15:22PM +0200, Christian Johansson wrote:
> Hi!
>
> I am able to reproduce this on two different computers using macOS 10.14 but
> I haven't tested this on any other system.
>
> Steps to reproduce:
> 1. Open Emacs without any configuration: src/emacs -Q
> 2. Make sure you are in *scratch* buffer
> 3. Paste following Emacs Lisp code:
>
> ;; FTP URL: ftp.dlptest.com or ftp://ftp.dlptest.com/
> ;; FTP User: dlpuser@dlptest.com
> ;; Password: e73jzTRTNqCN9PYAAjjn
> (make-thread (lambda()
> (message "Listing directory files..")
> (let ((files (directory-files
> "/ftp:dlpuser@dlptest.com@ftp.dlptest.com:/")))
> (message "Opened directory")
> (message "Directory files: %s" files))))
>
> 4. Run M-x eval-buffer
> 5. Emacs asks for FTP password, paste in mini-buffer: e73jzTRTNqCN9PYAAjjn
> 6. Emacs now hangs, asks for password again and you can't stop it using C-g.
> You get error in terminal:
The NS port currently doesn’t handle interactive functions from
threads very well. I suspect the problem is being caused by displaying
a message from the background thread.
> Christians-Air:emacs christianjohansson$ src/emacs -Q
> 2018-10-24 12:07:58.383 emacs[627:14815] Failed to initialize color list
> unarchiver: Error Domain=NSCocoaErrorDomain Code=4864 "***
> -[NSKeyedUnarchiver _initForReadingFromData:error:throwLegacyExceptions:]:
> non-keyed archive cannot be decoded by NSKeyedUnarchiver"
> UserInfo={NSDebugDescription=*** -[NSKeyedUnarchiver
> _initForReadingFromData:error:throwLegacyExceptions:]: non-keyed archive
> cannot be decoded by NSKeyedUnarchiver}
This error will be fixed in Emacs 26.2.
> 2018-10-24 12:08:28.515 emacs[627:15311] WARNING: NSWindow drag regions
> should only be invalidated on the Main Thread! This will throw an exception
> in the future. Called from (
> 0 AppKit 0x00007fff334132e3
> -[NSWindow(NSWindow_Theme)
> _postWindowNeedsToResetDragMarginsUnlessPostingDisabled] + 386
> 1 AppKit 0x00007fff33435422
> -[NSThemeFrame _tileTitlebarAndRedisplay:] + 98
> 2 AppKit 0x00007fff334604dd
> -[NSTitledFrame _titleDidChange] + 217
> 3 AppKit 0x00007fff3345ff89
> -[NSTitledFrame setTitle:] + 730
> 4 AppKit 0x00007fff3345fc00
> -[NSThemeFrame setTitle:] + 50
> 5 AppKit 0x00007fff33423082 -[NSWindow
> _dosetTitle:andDefeatWrap:] + 211
> 6 emacs 0x00000001001e7371
> ns_set_name_internal + 161
> 7 emacs 0x000000010004f640
> x_consider_frame_title + 784
> 8 emacs 0x0000000100028ad5
> redisplay_internal + 2949
<snip>
> 73 emacs 0x00000001001b624a run_thread +
> 138
> 74 libsystem_pthread.dylib 0x00007fff6316d33d _pthread_body
> + 126
> 75 libsystem_pthread.dylib 0x00007fff631702a7
> _pthread_start + 70
> 76 libsystem_pthread.dylib 0x00007fff6316c425 thread_start
> + 13
> )
Yes, we can see redisplay is being called from within the thread, and
that just won’t work currently, I’m afraid.
--
Alan Third