Skip to content

Deadlock in PlaylistViewController #3405

@anohren

Description

@anohren

Seems to be a deadlock at

player.playlistQueue.sync {

System and IINA version:

  • macOS mojave
  • IINA 1.1.2

Expected behavior:

Actual behavior:

827 samples of frozen GUI:
Call graph:
    827 Thread_1071212   DispatchQueue_1: com.apple.main-thread  (serial)
    + 827 start  (in libdyld.dylib) + 1  [0x7fff648853d5]
    +   827 main  (in IINA) + 9  [0x1084b2429]
    +     827 NSApplicationMain  (in AppKit) + 777  [0x7fff35e12ac8]
    +       827 -[NSApplication run]  (in AppKit) + 755  [0x7fff35e235c0]
    +         827 -[NSApplication(NSEvent) sendEvent:]  (in AppKit) + 331  [0x7fff35e34e4b]
    +           827 -[NSWindow(NSEventRouting) sendEvent:]  (in AppKit) + 478  [0x7fff35f95667]
    +             827 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:]  (in AppKit) + 2295  [0x7fff35f961a6]
    +               827 -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:]  (in AppKit) + 5724  [0x7fff3605f937]
    +                 827 -[NSTableView mouseDown:]  (in AppKit) + 6161  [0x7fff361d9a81]
    +                   827 -[NSTableView _sendSelectionChangedNotificationForRows:columns:]  (in AppKit) + 228  [0x7fff35fe0942]
    +                     827 -[NSNotificationCenter postNotificationName:object:userInfo:]  (in Foundation) + 66  [0x7fff3aab9aab]
    +                       827 _CFXNotificationPost  (in CoreFoundation) + 840  [0x7fff38815667]
    +                         827 -[_CFXNotificationRegistrar find:object:observer:enumerator:]  (in CoreFoundation) + 1834  [0x7fff388163bc]
    +                           827 ___CFXNotificationPost_block_invoke  (in CoreFoundation) + 87  [0x7fff388ad3ad]
    +                             827 _CFXRegistrationPost  (in CoreFoundation) + 404  [0x7fff388a4f7e]
    +                               827 ___CFXRegistrationPost_block_invoke  (in CoreFoundation) + 63  [0x7fff388a5014]
    +                                 827 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__  (in CoreFoundation) + 12  [0x7fff388a509a]
    +                                   827 @objc PlaylistViewController.tableViewSelectionDidChange(_:)  (in IINA) + 110  [0x1085db00e]
    +                                     827 PlaylistViewController.tableViewSelectionDidChange(_:)  (in IINA) + 222  [0x1085daf7e]
    +                                       827 PlaylistViewController.showTotalLength()  (in IINA) + 515  [0x1085d7b93]
    +                                         827 _dispatch_sync_f_slow  (in libdispatch.dylib) + 171  [0x7fff64843fce]
    +                                           827 __DISPATCH_WAIT_FOR_QUEUE__  (in libdispatch.dylib) + 269  [0x7fff6484436e]
    +                                             827 _dispatch_event_loop_wait_for_ownership  (in libdispatch.dylib) + 498  [0x7fff64853cd7]
    +                                               827 _dispatch_kq_poll  (in libdispatch.dylib) + 247  [0x7fff6485315f]
    +                                                 827 kevent_id  (in libsystem_kernel.dylib) + 10  [0x7fff649bbc86]



mpv log:

Steps to reproduce:

  1. Load m3u playlist of youtube URLs (maybe 1000 items)
  2. Double click some items until it invariably locks up
  • MPV does not have this problem.

How often does this happen?
Many times a day / every launch

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions