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

Broken room due to upgrade shenanigans #8460

Closed
babolivier opened this issue Feb 8, 2019 · 4 comments
Closed

Broken room due to upgrade shenanigans #8460

babolivier opened this issue Feb 8, 2019 · 4 comments
Assignees
Labels
A-Room-Upgrades P2 S-Minor Impairs non-critical functionality or suitable workarounds exist T-Defect X-Cannot-Reproduce

Comments

@babolivier
Copy link
Contributor

babolivier commented Feb 8, 2019

First part of my adventures in messing up room upgrades is here: matrix-org/synapse#4583

Since I left the wrong room, I tried to go and redact the m.room.tombstone event (which worked). Because bad luck never stops that early, I deleted the wrong one, i.e. the one linking to the room I still was in.
So I tried re-accessing the room to see if I could fix the situation, and Riot just refused to display it. In the console was this error:

Warning: Exception thrown by hook while handling onSetChildren: Invariant Violation: Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().
invariant@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:318379:15
onSetChildren@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:353544:59
callHook@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:343665:5
emitEvent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:343677:7
onSetChildren@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:343949:5
setChildrenForInstrumentation@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:345745:7
_updateChildren@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:345946:9
updateChildren@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:345885:7
_updateDOMChildren@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:341515:7
updateComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:341329:5
receiveComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:341291:5
receiveComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:347068:5
_updateRenderedComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:340295:7
_performComponentUpdate@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:340265:5
updateComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:340186:7
receiveComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:340088:5
receiveComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:347068:5
updateChildren@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:339401:9
_reconcilerUpdateChildren@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:345794:11
_updateChildren@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:345898:26
updateChildren@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:345885:7
_updateDOMChildren@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:341515:7
updateComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:341329:5
receiveComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:341291:5
receiveComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:347068:5
_updateRenderedComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:340295:7
_performComponentUpdate@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:340265:5
updateComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:340186:7
receiveComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:340088:5
receiveComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:347068:5
_updateRenderedComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:340295:7
_performComponentUpdate@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:340265:5
updateComponent@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:340186:7
performUpdateIfNecessary@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:340102:7
performUpdateIfNecessary@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:347100:5
runBatchedUpdates@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:347980:5
perform@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:349941:13
perform@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:349941:13
perform@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:347919:12
flushBatchedUpdates@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:348002:7
closeAll@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:350007:11
perform@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:349954:11
batchedUpdates@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:344069:14
enqueueUpdate@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:348030:5
enqueueUpdate@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:347612:3
enqueueSetState@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:347806:5
./node_modules/react/lib/ReactBaseClasses.js/ReactComponent.prototype.setState@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:353079:3
_onWillStartClient/<@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:74276:13
./node_modules/events/events.js/EventEmitter.prototype.emit@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:316369:7
./matrix-js-sdk/lib/sync.js/</SyncApi.prototype._updateSyncState@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:35146:5
_callee7$@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:34164:29
tryCatch@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:49715:37
invoke@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:49949:22
defineIteratorMethods/</prototype[method]@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:49767:16
tryCatcher@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:43536:16
./matrix-js-sdk/node_modules/bluebird/js/browser/bluebird.js/</</<[16]</module.exports/PromiseSpawn.prototype._promiseFulfilled@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:40669:18
./matrix-js-sdk/node_modules/bluebird/js/browser/bluebird.js/</</<[22]</module.exports/Promise.prototype._settlePromise@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:41739:17
./matrix-js-sdk/node_modules/bluebird/js/browser/bluebird.js/</</<[22]</module.exports/Promise.prototype._settlePromise0@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:41779:5
./matrix-js-sdk/node_modules/bluebird/js/browser/bluebird.js/</</<[22]</module.exports/Promise.prototype._settlePromises@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:41859:13
_drainQueueStep@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:38772:9
_drainQueue@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:38765:9
./matrix-js-sdk/node_modules/bluebird/js/browser/bluebird.js/</</<[2]</Async.prototype._drainQueues@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:38781:5
Async/this.drainQueues@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:38651:9
run@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:310291:22
notify/<@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:310308:30
flush@https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:306109:9

With a bunch of TypeError: null has no properties with this stacktrace:

getClosestInstanceFromNode   ReactDOMComponentTree.js:113
findParent                   https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:344407:10
handleTopLevelImpl           https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:344436:28
perform                      Transaction.js:143:5
batchedUpdates               ReactDefaultBatchingStrategy.js:62
batchedUpdates               https://riot.im/develop/bundles/f8ff1fbb89bab9ca7ebb/bundle.js:347927:10
dispatchEvent                ReactEventListener.js:147
dispatchEvent                self-hosted:1018:17 
@lampholder lampholder added T-Defect P2 S-Minor Impairs non-critical functionality or suitable workarounds exist A-Room-Upgrades labels Feb 19, 2019
@lampholder
Copy link
Member

I'm P2 minoring this since it sounds like you have to fair vandalise the room to get the error - if this is likely to be a common occurance maybe we should spend time making riot handle it better.

@turt2live turt2live changed the title Messed room can't be displayed anymore Broken room due to upgrade shenanigans Mar 14, 2019
@lampholder
Copy link
Member

On reflection, this sort of vandalisation (accidental) is probably going to happen - it's probably just highlighted some assumptions in Riot web we shouldn't be making.

If this is something that users can do by mistake (or on purpose) as part of regualr operation, we should probably fix it before room upgrades are commonplace.

@turt2live
Copy link
Member

ftr, rageshakes would be super helpful for stuff like this to help narrow down any issues that could have lead up to the obvious stack trace.

Although, I think the pieces required to reproduce this are patched away into oblivion:

With that being said though, I'll try and reproduce the elements of it which cause Riot to explode and see what happens.

@turt2live turt2live added Z-Rageshake Has attached rageshake (not for log submission process) X-Cannot-Reproduce and removed Z-Rageshake Has attached rageshake (not for log submission process) labels Mar 25, 2019
@turt2live
Copy link
Member

I'm afraid I can't reproduce this, so I suspect the error would have been buried in the log somewhere. @babolivier if you're able to reproduce it, please rageshake and reopen this.

su-ex added a commit to SchildiChat/element-web that referenced this issue May 10, 2022
* Made the location map change the cursor to a pointer so it looks like it's clickable (https ([\element-hq#8451](matrix-org/matrix-react-sdk#8451)). Fixes element-hq#21991. Contributed by @Odyssey346.
* Implement improved spacing for the thread list and timeline ([\element-hq#8337](matrix-org/matrix-react-sdk#8337)). Fixes element-hq#21759. Contributed by @luixxiul.
* LLS: expose way to enable live sharing labs flag from location dialog ([\element-hq#8416](matrix-org/matrix-react-sdk#8416)).
* Fix source text boxes in View Source modal should have full width ([\element-hq#8425](matrix-org/matrix-react-sdk#8425)). Fixes element-hq#21938. Contributed by @EECvision.
* Read Receipts: never show +1, if it’s just 4, show all of them ([\element-hq#8428](matrix-org/matrix-react-sdk#8428)). Fixes element-hq#21935.
* Add opt-in analytics to onboarding tasks ([\element-hq#8409](matrix-org/matrix-react-sdk#8409)). Fixes element-hq#21705.
* Allow user to control if they are signed out of all devices when changing password ([\element-hq#8259](matrix-org/matrix-react-sdk#8259)). Fixes element-hq#2671.
* Implement new Read Receipt design ([\element-hq#8389](matrix-org/matrix-react-sdk#8389)). Fixes element-hq#20574.
* Stick connected video rooms to the top of the room list ([\element-hq#8353](matrix-org/matrix-react-sdk#8353)).
* LLS: fix jumpy maximised map ([\element-hq#8387](matrix-org/matrix-react-sdk#8387)).
* Persist audio and video mute state in video rooms ([\element-hq#8376](matrix-org/matrix-react-sdk#8376)).
* Forcefully disconnect from video rooms on logout and tab close ([\element-hq#8375](matrix-org/matrix-react-sdk#8375)).
* Add local echo of connected devices in video rooms ([\element-hq#8368](matrix-org/matrix-react-sdk#8368)).
* Improve text of account deactivation dialog ([\element-hq#8371](matrix-org/matrix-react-sdk#8371)). Fixes element-hq#17421.
* Live location sharing: own live beacon status on maximised view ([\element-hq#8374](matrix-org/matrix-react-sdk#8374)).
* Show a lobby screen in video rooms ([\element-hq#8287](matrix-org/matrix-react-sdk#8287)).
* Settings toggle to disable Composer Markdown ([\element-hq#8358](matrix-org/matrix-react-sdk#8358)). Fixes element-hq#20321.
* Cache localStorage objects for SettingsStore ([\element-hq#8366](matrix-org/matrix-react-sdk#8366)).
* Bring `View Source` back from behind developer mode ([\element-hq#8369](matrix-org/matrix-react-sdk#8369)). Fixes element-hq#21771.
* Fix Jitsi Meet getting wedged at startup in some cases ([\element-hq#21995](element-hq#21995)).
* Fix camera getting muted when disconnecting from a video room ([\element-hq#21958](element-hq#21958)).
* Fix race conditions around threads ([\element-hq#8448](matrix-org/matrix-react-sdk#8448)). Fixes element-hq#21627.
* Fix reading of cached room device setting values ([\element-hq#8495](matrix-org/matrix-react-sdk#8495)).
* Fix issue with dispatch happening mid-dispatch due to js-sdk emit ([\element-hq#8473](matrix-org/matrix-react-sdk#8473)). Fixes element-hq#22019.
* Match MSC behaviour for threads when disabled (thread-aware mode) ([\element-hq#8476](matrix-org/matrix-react-sdk#8476)). Fixes element-hq#22033.
* Specify position of DisambiguatedProfile inside a thread on bubble message layout ([\element-hq#8452](matrix-org/matrix-react-sdk#8452)). Fixes element-hq#21998. Contributed by @luixxiul.
* Location sharing: do not trackuserlocation in location picker ([\element-hq#8466](matrix-org/matrix-react-sdk#8466)). Fixes element-hq#22013.
* fix text and map indent in thread view ([\element-hq#8462](matrix-org/matrix-react-sdk#8462)). Fixes element-hq#21997.
* Live location sharing: don't group beacon info with room creation summary ([\element-hq#8468](matrix-org/matrix-react-sdk#8468)).
* Don't linkify code blocks ([\element-hq#7859](matrix-org/matrix-react-sdk#7859)). Fixes element-hq#9613.
* read receipts: improve tooltips to show names of users ([\element-hq#8438](matrix-org/matrix-react-sdk#8438)). Fixes element-hq#21940.
* Fix poll overflowing a reply tile on bubble message layout ([\element-hq#8459](matrix-org/matrix-react-sdk#8459)). Fixes element-hq#22005. Contributed by @luixxiul.
* Fix text link buttons on UserInfo panel ([\element-hq#8247](matrix-org/matrix-react-sdk#8247)). Fixes element-hq#21702. Contributed by @luixxiul.
* Clear local storage settings handler cache on logout ([\element-hq#8454](matrix-org/matrix-react-sdk#8454)). Fixes element-hq#21994.
* Fix jump to bottom button being always displayed in non-overflowing timelines ([\element-hq#8460](matrix-org/matrix-react-sdk#8460)). Fixes element-hq#22003.
* fix timeline search with empty text box should do nothing ([\element-hq#8262](matrix-org/matrix-react-sdk#8262)). Fixes element-hq#21714. Contributed by @EECvision.
* Fixes "space panel kebab menu is rendered out of view on sub spaces"  ([\element-hq#8350](matrix-org/matrix-react-sdk#8350)). Contributed by @yaya-usman.
* Add margin to the location map inside ThreadView ([\element-hq#8442](matrix-org/matrix-react-sdk#8442)). Fixes element-hq#21982. Contributed by @luixxiul.
* Patch: "Reloading the registration page should warn about data loss" ([\element-hq#8377](matrix-org/matrix-react-sdk#8377)). Contributed by @yaya-usman.
* Live location sharing: fix safari timestamps pt 2 ([\element-hq#8443](matrix-org/matrix-react-sdk#8443)).
* Fix issue with thread notification state ignoring initial events ([\element-hq#8417](matrix-org/matrix-react-sdk#8417)). Fixes element-hq#21927.
* Fix event text overflow on bubble message layout ([\element-hq#8391](matrix-org/matrix-react-sdk#8391)). Fixes element-hq#21882. Contributed by @luixxiul.
* Disable the message action bar when hovering over the 1px border between threads on the list ([\element-hq#8429](matrix-org/matrix-react-sdk#8429)). Fixes element-hq#21955. Contributed by @luixxiul.
* correctly align read receipts to state events in bubble layout ([\element-hq#8419](matrix-org/matrix-react-sdk#8419)). Fixes element-hq#21899.
* Fix issue with underfilled timelines when barren of content ([\element-hq#8432](matrix-org/matrix-react-sdk#8432)). Fixes element-hq#21930.
* Fix baseline misalignment of thread panel summary by deduplication ([\element-hq#8413](matrix-org/matrix-react-sdk#8413)).
* Fix editing of non-html replies ([\element-hq#8418](matrix-org/matrix-react-sdk#8418)). Fixes element-hq#21928.
* Read Receipts "Fall from the Sky" ([\element-hq#8414](matrix-org/matrix-react-sdk#8414)). Fixes element-hq#21888.
* Make read receipts handle nullable roomMembers correctly ([\element-hq#8410](matrix-org/matrix-react-sdk#8410)). Fixes element-hq#21896.
* Don't form continuations on either side of a thread root ([\element-hq#8408](matrix-org/matrix-react-sdk#8408)). Fixes element-hq#20908.
* Fix centering issue with sticker placeholder ([\element-hq#8404](matrix-org/matrix-react-sdk#8404)). Fixes element-hq#18014 and element-hq#6449.
* Disable download option on <video/> , preferring dedicated download button ([\element-hq#8403](matrix-org/matrix-react-sdk#8403)). Fixes element-hq#21902.
* Fix infinite loop when pinning/unpinning persistent widgets ([\element-hq#8396](matrix-org/matrix-react-sdk#8396)). Fixes element-hq#21864.
* Tweak ReadReceiptGroup to better handle disambiguation ([\element-hq#8402](matrix-org/matrix-react-sdk#8402)). Fixes element-hq#21897.
* stop the bottom edge of buttons getting clipped in devtools ([\element-hq#8400](matrix-org/matrix-react-sdk#8400)).
* Fix issue with threads timelines with few events cropping events ([\element-hq#8392](matrix-org/matrix-react-sdk#8392)). Fixes element-hq#20594.
* Changed font-weight to 400 to support light weight font ([\element-hq#8345](matrix-org/matrix-react-sdk#8345)). Fixes element-hq#21171. Contributed by @goelesha.
* Fix issue with thread panel not updating when it loads on first render ([\element-hq#8382](matrix-org/matrix-react-sdk#8382)). Fixes element-hq#21737.
* fix: "Mention highlight and cursor hover highlight has different corner radius" ([\element-hq#8384](matrix-org/matrix-react-sdk#8384)). Contributed by @yaya-usman.
* Fix regression around haveRendererForEvent for hidden events ([\element-hq#8379](matrix-org/matrix-react-sdk#8379)). Fixes element-hq#21862 and element-hq#21725.
* Fix regression around the room list treeview keyboard a11y ([\element-hq#8385](matrix-org/matrix-react-sdk#8385)). Fixes element-hq#21436.
* Remove float property to let the margin between events appear on bubble message layout ([\element-hq#8373](matrix-org/matrix-react-sdk#8373)). Fixes element-hq#21861. Contributed by @luixxiul.
* Fix race in Registration between server change and flows fetch ([\element-hq#8359](matrix-org/matrix-react-sdk#8359)). Fixes element-hq#21800.
* fix rainbow breaks compound emojis ([\element-hq#8245](matrix-org/matrix-react-sdk#8245)). Fixes element-hq#21371. Contributed by @EECvision.
* Fix RightPanelStore handling first room on app launch wrong ([\element-hq#8370](matrix-org/matrix-react-sdk#8370)). Fixes element-hq#21741.
* Fix UnknownBody error message unalignment ([\element-hq#8346](matrix-org/matrix-react-sdk#8346)). Fixes element-hq#21828. Contributed by @luixxiul.
* Use -webkit-line-clamp for the room header topic overflow ([\element-hq#8367](matrix-org/matrix-react-sdk#8367)). Fixes element-hq#21852. Contributed by @luixxiul.
* Fix issue with ServerInfo crashing the modal ([\element-hq#8364](matrix-org/matrix-react-sdk#8364)).
* Fixes around threads beta in degraded mode ([\element-hq#8319](matrix-org/matrix-react-sdk#8319)). Fixes element-hq#21762.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Room-Upgrades P2 S-Minor Impairs non-critical functionality or suitable workarounds exist T-Defect X-Cannot-Reproduce
Projects
None yet
Development

No branches or pull requests

3 participants