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.