Skip to content

Conversation

@schmidt-sebastian
Copy link
Contributor

@schmidt-sebastian schmidt-sebastian commented Oct 2, 2019

This PR modifies the log line that caused the crash in #3950.

There are probably better fixes, but this is safe and isolated. The upstream library seems to be unmaintained at this point.

Fixes #3950

Copy link
Member

@paulb777 paulb777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@paulb777 paulb777 added this to the M58 milestone Oct 2, 2019
@paulb777
Copy link
Member

paulb777 commented Oct 2, 2019

Marked for M58.

@ryanwilson - You may want to consider for a cherry-pick if there are more M57 RCs.

@paulb777 paulb777 merged commit 2b7ffaa into master Oct 3, 2019
@paulb777 paulb777 deleted the mrschmidt/socketrocketcrash branch October 3, 2019 14:02
@paulb777 paulb777 modified the milestones: M58, 6.10.0 Oct 3, 2019
ryanwilson added a commit that referenced this pull request Oct 3, 2019
* Remove log argument that causes SocketRocket crash (#3983)

* Add FirebaseDatabase to release.

* Update CHANGELOG with version.
ryanwilson added a commit that referenced this pull request Oct 9, 2019
* Update versions for Release 6.10.0

* Cherrypick #3983 and include Database in release. (#3986)

* Remove log argument that causes SocketRocket crash (#3983)

* Add FirebaseDatabase to release.

* Update CHANGELOG with version.

* Cherrypick for #3984 along with CHANGELOG update. (#3988)

* Fix race condition in FIRComponentContainer instance creation (#3984)

* Fix race condition in FIRComponentContainer instance creation

Reported in #3967. Users sometimes seeing a crash when multiple threads
concurrently try to create Firestore instances. By inspection I found
that there's a race here where two threads can check for presence in the
cache, see nothing, proceed to creation, both store a value in the cache,
and both return their copies. This would lead to two Firestores being
created for a single App.

This replaces `dispatch_sync` on a serial queue with good old
`@synchronized` blocks. `dispatch_sync` will self-deadlock if called
from a thread already on the queue while `@synchronized` allows
recursion.

No new tests are added because several tests like
`testDependencyDoesntBlock` already cover this case.

* format

* Update Core CHANGELOG

* Update Core CHANGELOG again

* Fix merge from CHANGELOG
@firebase firebase locked and limited conversation to collaborators Nov 3, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

iOS 13 FirebaseDatabase crash inside safeHandleEvent

3 participants