Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deadlock of NSLock on same(?) thread #2707

Closed
jifang opened this issue Feb 4, 2016 · 3 comments
Closed

Deadlock of NSLock on same(?) thread #2707

jifang opened this issue Feb 4, 2016 · 3 comments
Labels

Comments

@jifang
Copy link

jifang commented Feb 4, 2016

I hit an dead lock on [NSLock lock] yesterday, but it is hard to reproduce. From Xcode console, it indicates that the NSLock has been invoked again on the same thread.

I listed the related code snippet from my source below and the stack trace at the bottom. Is it simply a mistakenly usage of ReactiveCocoa, or is it something wrong with the synchronization internally? Let me know if you guys need more information.

I am using v4.0.0-RC.2

VBAutoGeneratedCollageViewController.m:118

        [[RACObserve(self, viewHeaderFrame) map:^id(NSValue *value) {
            if (CGRectGetMaxY([value CGRectValue]) > navHeight) {
                return @(108);
            }
            else {
                return @(navHeight);
            }
        }]
         subscribeNext:^(NSNumber *value) {
             @strongify(self)
             self.tableView.contentInset = UIEdgeInsetsMake(value.floatValue, 0, 0, 0);
         }];

VBSegmentedPager.m:49 (vc here is the instance of VBAutoGeneratedCollageViewController)

    @weakify(self)
    [RACObserve(self.headerTopMargin, constant) subscribeNext:^(NSNumber *value) {
        @strongify(self)
        for (VBBaseViewController *vc in self.pages) {
            vc.viewHeaderFrame = self.headerView.frame;
        }
    }];

VBSegmentedPager+Header.swift:38

               headerTopMargin.constant -= offset - previousOffset!
#0  0x084f943a in __psynch_mutexwait ()
#1  0x084c2c21 in _pthread_mutex_lock_wait ()
#2  0x084bd0ef in pthread_mutex_lock ()
#3  0x03518374 in -[NSLock lock] ()
#4  0x0606c47e in Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Signal.swift:60
#5  0x0605fee4 in partial apply for Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) ()
#6  0x060b2821 in SignalProducer.(startWithSignal<A, B where ...> (SignalProducer<A, B>) -> ((Signal<A, B>, Disposable) -> ()) -> ()).(closure #2) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/SignalProducer.swift:252
#7  0x060a0b83 in partial apply for SignalProducer.(startWithSignal<A, B where ...> (SignalProducer<A, B>) -> ((Signal<A, B>, Disposable) -> ()) -> ()).(closure #2) ()
#8  0x060d6a8a in specialized Observer.sendNext<A, B where ...>(A) -> () [inlined] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Observer.swift:40
#9  0x060d6a77 in RACSignal.(toSignalProducer(RACSignal) -> (String, line : Int) -> SignalProducer<AnyObject?, NSError>).(closure #1).(closure #1) [inlined] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/ObjectiveCBridging.swift:59
#10 0x060d6a77 in partial apply for RACSignal.(toSignalProducer(RACSignal) -> (String, line : Int) -> SignalProducer<AnyObject?, NSError>).(closure #1).(closure #1) ()
#11 0x060d83be in thunk ()
#12 0x06033e8b in -[RACSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriber.m:72
#13 0x060508d7 in -[RACPassthroughSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACPassthroughSubscriber.m:78
#14 0x06011bbb in __23-[RACSubject sendNext:]_block_invoke at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubject.m:93
#15 0x0601196b in -[RACSubject enumerateSubscribersUsingBlock:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubject.m:85
#16 0x06011b22 in -[RACSubject sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubject.m:92
#17 0x0604ffdb in RACForwardInvocation at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/NSObject+RACSelectorSignal.m:55
#18 0x0604fd8d in __RACSwizzleForwardInvocation_block_invoke at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/NSObject+RACSelectorSignal.m:79
#19 0x06a4c778 in ___forwarding___ ()
#20 0x06a4c57e in __forwarding_prep_0___ ()
#21 0x0444dc7c in -[UIScrollView(UIScrollViewInternal) _notifyDidScroll] ()
#22 0x166acdfb in -[UIScrollViewAccessibility _notifyDidScroll] ()
#23 0x0443299e in -[UIScrollView setContentOffset:] ()
#24 0x044cf67e in -[UITableView setContentOffset:] ()
#25 0x044556d5 in -[UIScrollView(UIScrollViewInternal) _adjustContentOffsetIfNecessary] ()
#26 0x04432cfb in -[UIScrollView _updateForChangedScrollRelatedInsets] ()
#27 0x04432b23 in -[UIScrollView setContentInset:] ()
#28 0x044cf924 in -[UITableView setContentInset:] ()
#29 0x000917f1 in __51-[VBAutoGeneratedCollageViewController viewDidLoad]_block_invoke_2 at /Users/jifang/visbit/source/pixbrite/experimental/vbit_ios_app/Pixsi/Source/Portfolio/VBAutoGeneratedCollageViewController.m:118
#30 0x06033e8b in -[RACSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriber.m:72
#31 0x060508d7 in -[RACPassthroughSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACPassthroughSubscriber.m:78
#32 0x0601803b in __29-[RACSignal(RACStream) bind:]_block_invoke_2104 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal.m:140
#33 0x06033e8b in -[RACSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriber.m:72
#34 0x06051921 in __29-[RACReturnSignal subscribe:]_block_invoke at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACReturnSignal.m:85
#35 0x060247d4 in -[RACSubscriptionScheduler schedule:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriptionScheduler.m:40
#36 0x0605183e in -[RACReturnSignal subscribe:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACReturnSignal.m:84
#37 0x0601c6fc in -[RACSignal(Subscription) subscribeNext:error:completed:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal.m:302
#38 0x06017e7c in __29-[RACSignal(RACStream) bind:]_block_invoke94 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal.m:139
#39 0x060185b0 in __29-[RACSignal(RACStream) bind:]_block_invoke131 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal.m:165
#40 0x06033e8b in -[RACSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriber.m:72
#41 0x060508d7 in -[RACPassthroughSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACPassthroughSubscriber.m:78
#42 0x0601803b in __29-[RACSignal(RACStream) bind:]_block_invoke_2104 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal.m:140
#43 0x06033e8b in -[RACSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriber.m:72
#44 0x06051921 in __29-[RACReturnSignal subscribe:]_block_invoke at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACReturnSignal.m:85
#45 0x060247d4 in -[RACSubscriptionScheduler schedule:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriptionScheduler.m:40
#46 0x0605183e in -[RACReturnSignal subscribe:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACReturnSignal.m:84
#47 0x0601c6fc in -[RACSignal(Subscription) subscribeNext:error:completed:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal.m:302
#48 0x06017e7c in __29-[RACSignal(RACStream) bind:]_block_invoke94 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal.m:139
#49 0x060185b0 in __29-[RACSignal(RACStream) bind:]_block_invoke131 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal.m:165
#50 0x06033e8b in -[RACSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriber.m:72
#51 0x060508d7 in -[RACPassthroughSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACPassthroughSubscriber.m:78
#52 0x05ff49db in __35-[RACSignal(Operations) takeUntil:]_block_invoke584 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal+Operations.m:754
#53 0x06033e8b in -[RACSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriber.m:72
#54 0x060508d7 in -[RACPassthroughSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACPassthroughSubscriber.m:78
#55 0x06048e8c in __84-[NSObject(RACPropertySubscribing) rac_valuesAndChangesForKeyPath:options:observer:]_block_invoke46 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/NSObject+RACPropertySubscribing.m:77
#56 0x06041788 in __69-[NSObject(RACKVOWrapper) rac_observeKeyPath:options:observer:block:]_block_invoke81 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/NSObject+RACKVOWrapper.m:151
#57 0x060391ce in -[RACKVOTrampoline observeValueForKeyPath:ofObject:change:context:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACKVOTrampoline.m:107
#58 0x06049c04 in -[RACKVOProxy observeValueForKeyPath:ofObject:change:context:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACKVOProxy.m:66
#59 0x03588226 in NSKVONotify ()
#60 0x0351608b in NSKeyValueNotifyObserver ()
#61 0x0351519a in NSKeyValueDidChange ()
#62 0x03603043 in -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:usingBlock:] ()
#63 0x03512812 in -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] ()
#64 0x035bee67 in _NSSetRectValueAndNotify ()
#65 0x000f276a in __31-[VBSegmentedPager viewDidLoad]_block_invoke at /Users/jifang/visbit/source/pixbrite/experimental/vbit_ios_app/Pixsi/Source/Controllers/VBSegmentedPager.m:49
#66 0x06033e8b in -[RACSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriber.m:72
#67 0x060508d7 in -[RACPassthroughSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACPassthroughSubscriber.m:78
#68 0x0601803b in __29-[RACSignal(RACStream) bind:]_block_invoke_2104 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal.m:140
#69 0x06033e8b in -[RACSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriber.m:72
#70 0x06051921 in __29-[RACReturnSignal subscribe:]_block_invoke at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACReturnSignal.m:85
#71 0x060247d4 in -[RACSubscriptionScheduler schedule:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriptionScheduler.m:40
#72 0x0605183e in -[RACReturnSignal subscribe:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACReturnSignal.m:84
#73 0x0601c6fc in -[RACSignal(Subscription) subscribeNext:error:completed:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal.m:302
#74 0x06017e7c in __29-[RACSignal(RACStream) bind:]_block_invoke94 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal.m:139
#75 0x060185b0 in __29-[RACSignal(RACStream) bind:]_block_invoke131 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal.m:165
#76 0x06033e8b in -[RACSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriber.m:72
#77 0x060508d7 in -[RACPassthroughSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACPassthroughSubscriber.m:78
#78 0x05ff49db in __35-[RACSignal(Operations) takeUntil:]_block_invoke584 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSignal+Operations.m:754
#79 0x06033e8b in -[RACSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriber.m:72
#80 0x060508d7 in -[RACPassthroughSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACPassthroughSubscriber.m:78
#81 0x06048e8c in __84-[NSObject(RACPropertySubscribing) rac_valuesAndChangesForKeyPath:options:observer:]_block_invoke46 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/NSObject+RACPropertySubscribing.m:77
#82 0x06041788 in __69-[NSObject(RACKVOWrapper) rac_observeKeyPath:options:observer:block:]_block_invoke81 at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/NSObject+RACKVOWrapper.m:151
#83 0x060391ce in -[RACKVOTrampoline observeValueForKeyPath:ofObject:change:context:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACKVOTrampoline.m:107
#84 0x06049c04 in -[RACKVOProxy observeValueForKeyPath:ofObject:change:context:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACKVOProxy.m:66
#85 0x03588226 in NSKVONotify ()
#86 0x0351608b in NSKeyValueNotifyObserver ()
#87 0x0351519a in NSKeyValueDidChange ()
#88 0x03603043 in -[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:usingBlock:] ()
#89 0x03512812 in -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] ()
#90 0x03600dea in _NSSetFloatValueAndNotify ()
#91 0x001c0322 in VBSegmentedPager.(observeForChildViewControllerScrollingSignal(VBSegmentedPager) -> (VBBaseViewController) -> ()).(closure #4) at /Users/jifang/visbit/source/pixbrite/experimental/vbit_ios_app/Pixsi/Source/Controllers/VBSegmentedPager+Header.swift:38
#92 0x001be0e4 in partial apply for VBSegmentedPager.(observeForChildViewControllerScrollingSignal(VBSegmentedPager) -> (VBBaseViewController) -> ()).(closure #4) ()
#93 0x001c063e in thunk ()
#94 0x001be18a in partial apply for thunk ()
#95 0x060a0cc0 in thunk [inlined] ()
#96 0x060a0cb4 in partial apply for thunk ()
#97 0x060c8a33 in Observer.(init<A, B where ...> (Observer<A, B>.Type) -> (failed : (B) -> ()?, completed : () -> ()?, interrupted : () -> ()?, next : (A) -> ()?) -> Observer<A, B>).(closure #1) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Observer.swift:24
#98 0x060c80d2 in partial apply for Observer.(init<A, B where ...> (Observer<A, B>.Type) -> (failed : (B) -> ()?, completed : () -> ()?, interrupted : () -> ()?, next : (A) -> ()?) -> Observer<A, B>).(closure #1) ()
#99 0x0606c5f5 in Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Signal.swift:63
#100    0x0605fee4 in partial apply for Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) ()
#101    0x060b2821 in SignalProducer.(startWithSignal<A, B where ...> (SignalProducer<A, B>) -> ((Signal<A, B>, Disposable) -> ()) -> ()).(closure #2) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/SignalProducer.swift:252
#102    0x060a0b83 in partial apply for SignalProducer.(startWithSignal<A, B where ...> (SignalProducer<A, B>) -> ((Signal<A, B>, Disposable) -> ()) -> ()).(closure #2) ()
#103    0x0606c5f5 in Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Signal.swift:63
#104    0x0605fee4 in partial apply for Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) ()
#105    0x0606e98d in SignalType<A where ...>.(map<A><B where ...> (A) -> ((A.Value) -> B) -> Signal<B, A.Error>).(closure #1).(closure #1) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Signal.swift:228
#106    0x0606a5a9 in partial apply for SignalType<A where ...>.(map<A><B where ...> (A) -> ((A.Value) -> B) -> Signal<B, A.Error>).(closure #1).(closure #1) ()
#107    0x0606c5f5 in Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Signal.swift:63
#108    0x0605fee4 in partial apply for Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) ()
#109    0x060b2821 in SignalProducer.(startWithSignal<A, B where ...> (SignalProducer<A, B>) -> ((Signal<A, B>, Disposable) -> ()) -> ()).(closure #2) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/SignalProducer.swift:252
#110    0x060a0b83 in partial apply for SignalProducer.(startWithSignal<A, B where ...> (SignalProducer<A, B>) -> ((Signal<A, B>, Disposable) -> ()) -> ()).(closure #2) ()
#111    0x0606c5f5 in Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Signal.swift:63
#112    0x0605fee4 in partial apply for Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) ()
#113    0x060c7ed6 in Observer.sendNext<A, B where ...>(A) -> () at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Observer.swift:40
#114    0x0606f061 in SignalType<A where ...>.(filter<A where ...> (A) -> ((A.Value) -> Bool) -> Signal<A.Value, A.Error>).(closure #1).(closure #1) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Signal.swift:250
#115    0x0606a3ac in partial apply for SignalType<A where ...>.(filter<A where ...> (A) -> ((A.Value) -> Bool) -> Signal<A.Value, A.Error>).(closure #1).(closure #1) ()
#116    0x0606c5f5 in Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Signal.swift:63
#117    0x0605fee4 in partial apply for Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) ()
#118    0x060b2821 in SignalProducer.(startWithSignal<A, B where ...> (SignalProducer<A, B>) -> ((Signal<A, B>, Disposable) -> ()) -> ()).(closure #2) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/SignalProducer.swift:252
#119    0x060a0b83 in partial apply for SignalProducer.(startWithSignal<A, B where ...> (SignalProducer<A, B>) -> ((Signal<A, B>, Disposable) -> ()) -> ()).(closure #2) ()
#120    0x0606c5f5 in Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Signal.swift:63
#121    0x0605fee4 in partial apply for Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) ()
#122    0x0606e98d in SignalType<A where ...>.(map<A><B where ...> (A) -> ((A.Value) -> B) -> Signal<B, A.Error>).(closure #1).(closure #1) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Signal.swift:228
#123    0x0606a5a9 in partial apply for SignalType<A where ...>.(map<A><B where ...> (A) -> ((A.Value) -> B) -> Signal<B, A.Error>).(closure #1).(closure #1) ()
#124    0x0606c5f5 in Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Signal.swift:63
#125    0x0605fee4 in partial apply for Signal.(init<A, B where ...> (Signal<A, B>.Type) -> ((Observer<A, B>) -> Disposable?) -> Signal<A, B>).(closure #1) ()
#126    0x060b2821 in SignalProducer.(startWithSignal<A, B where ...> (SignalProducer<A, B>) -> ((Signal<A, B>, Disposable) -> ()) -> ()).(closure #2) at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/SignalProducer.swift:252
#127    0x060a0b83 in partial apply for SignalProducer.(startWithSignal<A, B where ...> (SignalProducer<A, B>) -> ((Signal<A, B>, Disposable) -> ()) -> ()).(closure #2) ()
#128    0x060d6a8a in specialized Observer.sendNext<A, B where ...>(A) -> () [inlined] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/Observer.swift:40
#129    0x060d6a77 in RACSignal.(toSignalProducer(RACSignal) -> (String, line : Int) -> SignalProducer<AnyObject?, NSError>).(closure #1).(closure #1) [inlined] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Swift/ObjectiveCBridging.swift:59
#130    0x060d6a77 in partial apply for RACSignal.(toSignalProducer(RACSignal) -> (String, line : Int) -> SignalProducer<AnyObject?, NSError>).(closure #1).(closure #1) ()
#131    0x060d83be in thunk ()
#132    0x06033e8b in -[RACSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubscriber.m:72
#133    0x060508d7 in -[RACPassthroughSubscriber sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACPassthroughSubscriber.m:78
#134    0x06011bbb in __23-[RACSubject sendNext:]_block_invoke at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubject.m:93
#135    0x0601196b in -[RACSubject enumerateSubscribersUsingBlock:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubject.m:85
#136    0x06011b22 in -[RACSubject sendNext:] at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/RACSubject.m:92
#137    0x0604ffdb in RACForwardInvocation at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/NSObject+RACSelectorSignal.m:55
#138    0x0604fd8d in __RACSwizzleForwardInvocation_block_invoke at /Users/jifang/visbit/source/carthage/Carthage/Checkouts/ReactiveCocoa/ReactiveCocoa/Objective-C/NSObject+RACSelectorSignal.m:79
#139    0x06a4c778 in ___forwarding___ ()
#140    0x06a4c57e in __forwarding_prep_0___ ()
#141    0x0444dc7c in -[UIScrollView(UIScrollViewInternal) _notifyDidScroll] ()
#142    0x166acdfb in -[UIScrollViewAccessibility _notifyDidScroll] ()
#143    0x0443299e in -[UIScrollView setContentOffset:] ()
#144    0x044cf67e in -[UITableView setContentOffset:] ()
#145    0x04447132 in -[UIScrollView _smoothScrollWithUpdateTime:] ()
#146    0x044474d3 in -[UIScrollView _smoothScrollDisplayLink:] ()
#147    0x040371d2 in CA::Display::DisplayLinkItem::dispatch() ()
#148    0x0403707b in CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) ()
#149    0x0403758d in CA::Display::TimerDisplayLink::callback(__CFRunLoopTimer*, void*) ()
#150    0x06a57246 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ ()
#151    0x06a56c42 in __CFRunLoopDoTimer ()
#152    0x06a154aa in __CFRunLoopRun ()
#153    0x06a14956 in CFRunLoopRunSpecific ()
#154    0x06a1476b in CFRunLoopRunInMode ()
#155    0x087e5664 in GSEventRunModal ()
#156    0x087e54a1 in GSEventRun ()
#157    0x04356299 in UIApplicationMain ()
#158    0x001a456a in main at /Users/jifang/visbit/source/pixbrite/experimental/vbit_ios_app/Pixsi/Pixsi/main.m:14
#159    0x081a5a25 in start ()
@eimantas
Copy link
Contributor

eimantas commented Feb 4, 2016

Can you try to reproduce this with latest RAC release (4.0.1)? It would also be cleaner to have a backtrace with source code embedded from gist.github.com

@jifang
Copy link
Author

jifang commented Feb 4, 2016

@eimantas OK, will try the new build

@RuiAAPeres
Copy link
Member

@jifang any update on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants