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

WARNING (moor): It looks like you've created the database classOfflineStorage multiple times. #57

Closed
brizaldi opened this issue Jul 9, 2020 · 5 comments

Comments

@brizaldi
Copy link

brizaldi commented Jul 9, 2020

i got this warning message after disconnect from current client using client.disconnect(); and then set a new user using _client.setUser()

error warning
I/flutter (12293): WARNING (moor): It looks like you've created the database classOfflineStorage multiple times. When these two databases use the same QueryExecutor, race conditions will ocur and might corrupt the database. 
I/flutter (12293): Try to follow the advice at https://moor.simonbinder.eu/faq/#using-the-database or, if you know what you're doing, set moorRuntimeOptions.dontWarnAboutMultipleDatabases = true
I/flutter (12293): Here is the stacktrace from when the database was opened a second time:
I/flutter (12293): #0      GeneratedDatabase._handleInstantiated (package:moor/src/runtime/api/db_base.dart:90:30)
I/flutter (12293): #1      new GeneratedDatabase.connect (package:moor/src/runtime/api/db_base.dart:69:12)
I/flutter (12293): #2      new _$OfflineStorage.connect (package:stream_chat/src/db/offline_storage.g.dart:3761:58)
I/flutter (12293): #3      new OfflineStorage.connect (package:stream_chat/src/db/offline_storage.dart:101:13)
I/flutter (12293): #4      connectDatabase (package:stream_chat/src/db/offline_storage.dart:58:25)
I/flutter (12293): <asynchronous suspension>
I/flutter (12293): #5      Client.connect (package:stream_chat/src/client.dart:408:31)
I/flutter (12293): #6      Client.setUser
E/flutter (12293): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: NoSuchMethodError: The method 'where' was called on null.
E/flutter (12293): Receiver: null
E/flutter (12293): Tried calling: where(Closure: (SortOption) => bool)
E/flutter (12293): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
E/flutter (12293): #1      OfflineStorage.getChannelStates.<anonymous closure> (package:stream_chat/src/db/offline_storage.dart:242:12)
E/flutter (12293): #2      _rootRunUnary (dart:async/zone.dart:1198:47)
E/flutter (12293): #3      _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (12293): #4      _FutureListener.handleValue (dart:async/future_impl.dart:143:18)
E/flutter (12293): #5      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:696:45)
E/flutter (12293): #6      Future._propagateToListeners (dart:async/future_impl.dart:725:32)
E/flutter (12293): #7      Future._completeWithValue (dart:async/future_impl.dart:529:5)
E/flutter (12293): #8      _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:40:15)
E/flutter (12293): #9      _completeOnAsyncReturn (dart:async-patch/async_patch.dart:311:13)
E/flutter (12293): #10     SimpleSelectStatement._getWithQuery (package:moor/src/runtime/query_builder/statements/select/select.dart)
E/flutter (12293): <asynchronous suspension>
E/flutter (12293): #11     SimpleSelectStatement.get (package:moor/src/runtime/query_builder/statements/select/select.dart:35:12)
E/flutter (12293): #12     OfflineStorage.getChannelStates (package:stream_chat/src/db/offline_storage.dart:236:10)
E/flutter (12293): #13     Client.queryChannels (package:stream_chat/src/client.dart:561:52)
E/flutter (12293): <asynchronous suspension>
E/flutter (12293): #14     Client.connect.<anonymous closure> (package:stream_chat/src/client.dart:437:9)
E/flutter (12293): #15     Client.connect.<anonymous closure> (package:stream_chat/src/client.dart:427:33)
E/flutter (12293): #16     ChangeNotifier.notifyListeners (package:flutter/src/foundation/change_notifier.dart:209:21)
E/flutter (12293): #17     ValueNotifier.value= (package:flutter/src/foundation/change_notifier.dart:276:5)
E/flutter (12293): #18     WebSocket._onData (package:stream_chat/src/api/websocket.dart:167:24)
E/flutter (12293): #19     WebSocket.connect.<anonymous closure> (package:stream_chat/src/api/websocket.dart:132:9)
E/flutter (12293): #20     _rootRunUnary (dart:async/zone.dart:1198:47)
E/flutter (12293): #21     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (12293): #22     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (12293): #23     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
E/flutter (12293): #24     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
E/flutter (12293): #25     _ForwardingStreamSubscription._add (dart:async/stream_pipe.dart:127:11)
E/flutter (12293): #26     _HandleErrorStream._handleData (dart:async/stream_pipe.dart:266:10)
E/flutter (12293): #27     _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:157:13)
E/flutter (12293): #28     _rootRunUnary (dart:async/zone.dart:1198:47)
E/flutter (12293): #29     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (12293): #30     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (12293): #31     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
E/flutter (12293): #32     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
E/flutter (12293): #33     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:811:19)
E/flutter (12293): #34     _StreamController._add (dart:async/stream_controller.dart:682:7)
E/flutter (12293): #35     _rootRunUnary (dart:async/zone.dart:1198:47)
E/flutter (12293): #36     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (12293): #37     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (12293): #38     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
E/flutter (12293): #39     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
E/flutter (12293): #40     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:811:19)
E/flutter (12293): #41     _StreamController._add (dart:async/stream_controller.dart:682:7)
E/flutter (12293): #42     _StreamController.add (dart:async/stream_controller.dart:624:5)
E/flutter (12293): #43     new _WebSocketImpl._fromSocket.<anonymous closure> (dart:_http/websocket_impl.dart:1145:21)
E/flutter (12293): #44     _rootRunUnary (dart:async/zone.dart:1198:47)
E/flutter (12293): #45     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (12293): #46     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (12293): #47     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
E/flutter (12293): #48     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
E/flutter (12293): #49     
E/flutter (12293): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: Bad state: Cannot add new events after calling close
E/flutter (12293): #0      _BroadcastStreamController.add (dart:async/broadcast_stream_controller.dart:249:24)
E/flutter (12293): #1      Subject._add (package:rxdart/src/subjects/subject.dart:141:17)
E/flutter (12293): #2      Subject.add (package:rxdart/src/subjects/subject.dart:135:5)
E/flutter (12293): #3      _StreamSinkWrapper.add (package:rxdart/src/subjects/subject.dart:167:13)
E/flutter (12293): #4      ChannelsBlocState.queryChannels (package:stream_chat_flutter/src/channels_bloc.dart:72:42)
E/flutter (12293): #5      _ChannelListState.initState.<anonymous closure> (package:homy_mobile/screens/home/tabs/chat_list/components/channel_list.dart:415:20)
E/flutter (12293): #6      _rootRunUnary (dart:async/zone.dart:1198:47)
E/flutter (12293): #7      _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (12293): #8      _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (12293): #9      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
E/flutter (12293): #10     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
E/flutter (12293): #11     _ForwardingStreamSubscription._add (dart:async/stream_pipe.dart:127:11)
E/flutter (12293): #12     _WhereStream._handleData (dart:async/stream_pipe.dart:199:12)
E/flutter (12293): #13     _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:157:13)
E/flutter (12293): #14     _rootRunUnary (dart:async/zone.dart:1198:47)
E/flutter (12293): #15     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (12293): #16     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (12293): #17     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
E/flutter (12293): #18     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
E/flutter (12293): #19     _SyncBroadcastStreamController._sendData (dart:async/broadcast_stream_controller.dart:385:25)
E/flutter (12293): #20     _BroadcastStreamController.add (dart:async/broadcast_stream_controller.dart:250:5)
E/flutter (12293): #21     _StartWithStreamSink.add (package:rxdart/src/transformers/start_with.dart:16:10)
E/flutter (12293): #22     forwardStream.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:rxdart/src/utils/forwarding_stream.dart:34:49)
E/flutter (12293): #23     forwardStream.runCatching (package:rxdart/src/utils/forwarding_stream.dart:24:12)
E/flutter (12293): #24     forwardStream.<anonymous closure>.<anonymous closure> (package:rxdart/src/utils/forwarding_stream.dart:34:28)
E/flutter (12293): #25     _rootRunUnary (dart:async/zone.dart:1198:47)
E/flutter (12293): #26     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (12293): #27     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (12293): #28     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
E/flutter (12293): #29     _DelayedData.perform (dart:async/stream_impl.dart:611:14)
E/flutter (12293): #30     _StreamImplEvents.handleNext (dart:async/stream_impl.dart:730:11)
E/flutter (12293): #31     _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:687:7)
E/flutter (12293): #32     _rootRun (dart:async/zone.dart:1182:47)
E/flutter (12293): #33     _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter (12293): #34     _CustomZone.runGuarded (dart:async/zone.dart:997:7)
E/flutter (12293): #35     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037:23)
E/flutter (12293): #36     _rootRun (dart:async/zone.dart:1190:13)
E/flutter (12293): #37     _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter (12293): #38     _CustomZone.runGuarded (dart:async/zone.dart:997:7)
E/flutter (12293): #39     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037:23)
E/flutter (12293): #40     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
E/flutter (12293): #41     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
E/flutter (12293): 

i dont know if i should be concerned or it just a false warning message

@imtoori
Copy link
Contributor

imtoori commented Jul 9, 2020

do you await client.disconnect()?

@brizaldi
Copy link
Author

brizaldi commented Jul 9, 2020

yes, here's what i do to disconnect

await client.removeDevice(deviceToken);
await client.disconnect(flushOfflineStorage: true);

@imtoori
Copy link
Contributor

imtoori commented Jul 9, 2020

I'm trying different cases in the example app, but I never have that warning.

What version of the SDK are you using?

@brizaldi
Copy link
Author

flutter doctor -v
[√] Flutter (Channel dev, 1.20.0-2.0.pre, on Microsoft Windows [Version 10.0.18363.900], locale en-ID)
    • Flutter version 1.20.0-2.0.pre at C:\Devkit\flutter
    • Framework revision 15a28159bc (2 weeks ago), 2020-06-23 04:52:58 -0700
    • Engine revision 91a63d6a44
    • Dart version 2.9.0 (build 2.9.0-19.0.dev 7e72c9ae7e)


[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Devkit\SDK
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = C:\Devkit\SDK
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Android Studio (version 4.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] Connected device (2 available)
    • Redmi Note 7              • 192.168.1.2:5555 • android-arm64 • Android 10 (API 29)
    • Android SDK built for x86 • emulator-5554    • android-x86   • Android 10 (API 29) (emulator)

• No issues found!

stream_chat_flutter version 0.2.1

@imtoori
Copy link
Contributor

imtoori commented Jan 26, 2021

Closing this
Feel free to reopen it if you're still facing this issue

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

No branches or pull requests

2 participants