XSF Discussion - 2019-06-19

  1. pdurbin has left

  2. Wojtek has joined

  3. andy has left

  4. Wojtek has left

  5. lumi has left

  6. lumi has joined

  7. dragonspirit810 has joined

  8. UsL has joined

  9. marc_ has left

  10. karoshi has left

  11. dragonspirit810 has left

  12. dragonspirit810 has joined

  13. dragonspirit810 has left

  14. dragonspirit810 has joined

  15. dragonspirit810 has left

  16. dragonspirit810 has joined

  17. dragonspirit810 has left

  18. dragonspirit810 has joined

  19. dragonspirit810 has left

  20. dragonspirit810 has joined

  21. lskdjf has left

  22. dragonspirit810 has left

  23. dragonspirit810 has joined

  24. lumi has left

  25. dragonspirit810 has left

  26. dragonspirit810 has joined

  27. dragonspirit810 has left

  28. dragonspirit810 has joined

  29. dragonspirit810 has left

  30. dragonspirit810 has joined

  31. dragonspirit810 has left

  32. dragonspirit810 has joined

  33. dragonspirit810 has left

  34. XSF has left

  35. pdurbin has joined

  36. pdurbin has left

  37. UsL has left

  38. Douglas Terabyte has joined

  39. neshtaxmpp has left

  40. neshtaxmpp has joined

  41. neshtaxmpp has left

  42. neshtaxmpp has joined

  43. andy has joined

  44. remko has joined

  45. Zash has joined

  46. pdurbin has joined

  47. sezuan has joined

  48. david has left

  49. sezuan has left

  50. sezuan has joined

  51. Nekit has joined

  52. Yagiza has joined

  53. pdurbin has left

  54. david has joined

  55. pdurbin has joined

  56. Andrew Nenakhov has left

  57. Andrew Nenakhov has joined

  58. pdurbin has left

  59. pdurbin has joined

  60. Douglas Terabyte has left

  61. Douglas Terabyte has joined

  62. Douglas Terabyte has left

  63. Douglas Terabyte has joined

  64. COM8 has joined

  65. COM8 has left

  66. remko has left

  67. Zash has left

  68. Douglas Terabyte has left

  69. Douglas Terabyte has joined

  70. Zash has joined

  71. remko has joined

  72. andy has left

  73. Daniel has left

  74. andy has joined

  75. andy has left

  76. andy has joined

  77. Daniel has joined

  78. COM8 has joined

  79. COM8 has left

  80. APach has left

  81. APach has joined

  82. winfried has left

  83. winfried has joined

  84. sezuan has left

  85. lskdjf has joined

  86. goffi has joined

  87. Hi has joined

  88. lumi has joined

  89. karoshi has joined

  90. COM8 has joined

  91. Hi has left

  92. COM8 has left

  93. goffi has left

  94. goffi has joined

  95. rtq3 has joined

  96. rtq3 has left

  97. rtq3 has joined

  98. Douglas Terabyte has left

  99. Douglas Terabyte has joined

  100. Nekit has left

  101. Nekit has joined

  102. COM8 has joined

  103. COM8 has left

  104. marc_ has joined

  105. Kacper has joined

  106. sezuan has joined

  107. lumi has left

  108. Steve Kille has left

  109. Steve Kille has joined

  110. remko has left

  111. Daniel

    Zash, so wait. if i reboot prosody everyone stays in the room? as long as they don’t send errors which i guess under normal circumstances they shouldn't

  112. Kev

    That's what's happening in M-Link too in MUC rework we've got underway.

  113. COM8 has joined

  114. Daniel

    right. so i guess this would cover a lot of the cases except for when during downtime I try to (re)connect to a muc, get 'server not found' and then don’t know when it is fine to try again

  115. COM8 has left

  116. Daniel

    but it it would at least solve the ghost room problem

  117. jonas’

    I’m not sure how well it works in practice

  118. jonas’

    but I guess that’s the point of it (that you don’t notice a graceful restart) anymore

  119. jonas’

    but I guess that’s the point of it (that you don’t notice a graceful restart anymore)

  120. Daniel

    i think it might even break in the case where i have a reconnect (with the same resource) during down time. i will get a server not found back from my own server. thus my client thinks i'm not in the room. but after restart the room thinks i'm in it

  121. Daniel

    and then messages sent to me won’t get bounced (by my server) because my resource is the same

  122. rtq3 has left

  123. jonas’

    but then you’re still confused on the client side (which you can fix up)

  124. Douglas Terabyte has left

  125. Douglas Terabyte has joined

  126. rtq3 has joined

  127. jonas’

    with a rejoin probably, because you threw state away

  128. neshtaxmpp has left

  129. Daniel

    yes. so clients need extra logic that a message (or presence) received to a room that seems to be offline should trigger a ping/join

  130. Daniel

    or something

  131. Daniel

    which is ok i guess

  132. Daniel

    but needs to be handled (and probably documented)

  133. Kacper has left

  134. neshtaxmpp has joined

  135. Kacper has joined

  136. Kev

    Restarts are usually so quick that you don't notice them.

  137. Kev

    (Unless you're silently dropped from the room)

  138. kokonoe has left

  139. Kacper has left

  140. Kacper has joined

  141. remko has joined

  142. jonas’

    Kev, depends on what is restarted ;)

  143. jonas’

    if it’s your own server, you’ll definitely notice. if the server is being fully rebooted, it can take minutes

  144. rtq3 has left

  145. Holger

    Don't we already have enough "works most of the time" cases?

  146. remko has left

  147. rtq3 has joined

  148. Daniel

    in what cases would this break?

  149. goffi has left

  150. Zash has left

  151. neshtaxmpp has left

  152. neshtaxmpp has joined

  153. Zash has joined

  154. Link Mauve

    Daniel, I’m not sure I understand your last example, in most cases if your client reuses a previous resource, it’ll have the MUC in bookmarks and join it again afterwards, right?

  155. Link Mauve

    In doing so, it sends a MUC join and the service then knows it has to send the full room state again, and can consider the previous full JID as out of the room.

  156. Link Mauve

    And when your new client doesn’t know it should join the MUC, it can send back an error to any groupchat message it receives from that room.

  157. goffi has joined

  158. Link Mauve

    Or am I missing something?

  159. jonas’

    Link Mauve, daniels scenario was that the muc is currently rebooting while the client reconnects

  160. jonas’

    thus the rejoin gets bounced with remote-server-not-found

  161. jonas’

    and never reaches the MUC service

  162. Link Mauve

    Ah right.

  163. Kacper has left

  164. Link Mauve

    Yeah, then you have to try again with exponential back off, like in any current case of remote-server-not-found.

  165. Kacper has joined

  166. jonas’

    Link Mauve, but then the MUC service comes back and starts sending you type="groupchat" and presence

  167. Zash has left

  168. kokonoe has joined

  169. Zash has joined

  170. Nekit has left

  171. Nekit has joined

  172. debacle has joined

  173. pdurbin has left

  174. dele has joined

  175. dele has left

  176. neshtaxmpp has left

  177. dele has joined

  178. MattJ

    Probably the MUC service should ping persisted occupants after a restart

  179. dele has left

  180. dele has joined

  181. MattJ

    and by ping, probably I mean probe

  182. Zash

    In Prosody, that's already what sorta happens since rooms are usually restored from storage by some event that results in a broadcast.

  183. Zash

    Daniel Yes, everyone stays in the room. Rooms can be saved to disk and removed from memory and then brought back at any time for a few different reasons, of which graceful shutdown is only one.

  184. Zash

    When all goes well, nobody notices.

  185. Nekit has left

  186. Nekit has joined

  187. kokonoe has left

  188. dele has left

  189. Zash

    The situation where the room thinks you're stil there but the client doesn't think so only happens because the move to long-term stable resources. If you get a new resource every time you connect, this takes care of itself eventually via kick-causing error bounces.

  190. Daniel

    the move to long term stable resources only happened because otherwise we have no ability to kick the old one

  191. Zash

    I don't think that's true

  192. Daniel

    that this was the reason or that we have no way of kicking the old?

  193. Zash

    Removal of stale sessions can be done, dwd has written stuff about this before.

  194. Kacper has left

  195. Zash

    And they should get removed eventually anyways

  196. Zash

    Like, the server could ping existing sessions when a new session connects.

  197. Daniel

    fwiw if that's what it takes i'm fine with moving to random resources

  198. dele has joined

  199. Daniel

    users will hate it

  200. Zash

    As always, there are tradeoffs

  201. kokonoe has joined

  202. Holger

    Ping existing sessions sounds ugly to me.

  203. Kacper has joined

  204. Holger

    A problem in practice I see is the delay. Stanzas queued for the old session won't be resent before the ping times out.

  205. Daniel

    Zash, is this prosody 0.11 or current development?

  206. Zash

    Everyone being kicked from rooms all the time because "Disconnected: Replaced by new connection" is also ugly

  207. Zash

    Daniel Theoretical

  208. Daniel

    Zash, the storing muc state i mean

  209. Daniel

    not the pinging of resources

  210. Link Mauve

    Daniel, 0.11 this one.

  211. Zash

    Yes, 0.11

  212. Zash

    Rooms can be saved to disk on graceful shutdown, module unload (and reload) or when they are evicted from a LRU cache.

  213. Daniel

    can or will?

  214. Daniel

    does this need to be configured?

  215. valo has left

  216. Zash

    Will. Enabled by default. I'd have to check docs or code to remember details of what can be configured.

  217. valo has joined

  218. Holger

    You're not worried about the init system killing the graceful shutdown due to timeout on servers with large/many rooms?

  219. Daniel

    do you have any grasp on how well that works in practice? because i still have countless users telling me about ghost mucs. but of course it might be that they are all on ejabberd

  220. Daniel

    countless ~= 3

  221. Zash

    Holger: Dunno, should we be?

  222. Daniel

    but they are very annoying about it :-)

  223. Zash

    Loud minority?

  224. Holger

    Zash: That's the main reason that made me hesitate to implement thing.

  225. Holger

    *the same thing.

  226. Zash

    I suspect that ejabberds closing of idle s2s connections isn't helpful here.

  227. Daniel

    why? saving state doesn’t require sending something over s2s does it?

  228. dele has left

  229. Zash

    I mean about ghost rooms/users. s2s connection gets closed and then fails to be reestablished for something, and then ghosts.

  230. Link Mauve

    Yeah, I’ve often been kicked out from (old) Ejabberd rooms without being notified, this doesn’t happen much lately.

  231. Holger

    If reconnecting fails I'd assume the old connection would've been lost as well.

  232. dele has joined

  233. Zash

    There's more likely that an unavailable presence can be delivered over an established s2s connection than if it has to reestablish it again.

  234. Zash

    Prosody in some configurations doesn't even manage to send anything when shutting down, making this worse.

  235. Holger

    Either way, personally I'd still prefer MUC Push over all these solutions that try to work around all these problems with MUC relying on presence.

  236. Holger

    The only real corner case I see with this is the first participant who'd like to write a groupchat message after MUC service restart.

  237. Daniel

    Holger, the question is if muc push really becomes the go to thing and all clients enable 1-2 push targets on every join wouldn’t the load on the db be the same as persisting presence?

  238. Holger

    Fixing that might require some client-side hack, or waiting for MIX.

  239. Zash

    I did start on an experimental hack that would make MUC joining account based

  240. Holger

    Daniel: Yes it's just a more robust solution, in my book. As you can't do the presence thing for clients without persistent connection anyway.

  241. Holger

    (Except with the super-ugly hack of faking their presence state while they're disconnected.)

  242. lumi has joined

  243. dele has left

  244. Kacper has left

  245. Kacper has joined

  246. moparisthebest has left

  247. dele has joined

  248. Kacper has left

  249. dele has left

  250. neshtaxmpp has joined

  251. Kacper has joined

  252. UsL has joined

  253. pdurbin has joined

  254. Kacper has left

  255. Kacper has joined

  256. pdurbin has left

  257. dragonspirit810 has joined

  258. dragonspirit810 has left

  259. dragonspirit810 has joined

  260. marc_ has left

  261. UsL has left

  262. pdurbin has joined

  263. COM8 has joined

  264. dragonspirit810 has left

  265. Zash

    Daniel, ask MattJ about mod_devices 🙂

  266. COM8 has left

  267. marc_ has joined

  268. neshtaxmpp has left

  269. wurstsalat has left

  270. pdurbin has left

  271. pdurbin has joined

  272. wurstsalat has joined

  273. neshtaxmpp has joined

  274. lumi has left

  275. lumi has joined

  276. pdurbin has left

  277. oli has left

  278. oli has joined

  279. rtq3 has left

  280. rtq3 has joined

  281. remko has joined

  282. dragonspirit810 has joined

  283. dragonspirit810 has left

  284. Damien has joined

  285. Damien has left

  286. rtq3 has left

  287. rtq3 has joined

  288. lumi has left

  289. UsL has joined

  290. kokonoe has left

  291. Wojtek has joined

  292. kokonoe has joined

  293. Wojtek has left

  294. moparisthebest has joined

  295. moparisthebest has left

  296. moparisthebest has joined

  297. Tobias has left

  298. Tobias has joined

  299. pdurbin has joined

  300. Wojtek has joined

  301. Wojtek has left

  302. pdurbin has left

  303. alacer has joined

  304. dele has joined

  305. dele has left

  306. alameyo has left

  307. alameyo has joined

  308. alacer has left

  309. alameyo has left

  310. alameyo has joined

  311. dele has joined

  312. dele has left

  313. igoose has left

  314. igoose has joined

  315. Andrew Nenakhov has left

  316. Andrew Nenakhov has joined

  317. eevvoor has joined

  318. UsL has left

  319. UsL has joined

  320. neshtaxmpp has left

  321. UsL has left

  322. UsL has joined

  323. Steve Kille has left

  324. UsL has left

  325. neshtaxmpp has joined

  326. Steve Kille has joined

  327. rtq3 has left

  328. pdurbin has joined

  329. pdurbin has left

  330. andy has left

  331. sezuan has left

  332. rtq3 has joined

  333. rtq3 has left

  334. rtq3 has joined

  335. Kacper has left

  336. Kacper has joined

  337. andy has joined

  338. lovetox has joined

  339. Lance has joined

  340. david has left

  341. valo has left

  342. valo has joined

  343. david has joined

  344. Nekit has left

  345. Nekit has joined

  346. APach has left

  347. Douglas Terabyte has left

  348. valo has left

  349. valo has joined

  350. dwd has left

  351. dwd has joined

  352. dwd has left

  353. dwd has joined

  354. pdurbin has joined

  355. Kacper has left

  356. Douglas Terabyte has joined

  357. andy has left

  358. Kacper has joined

  359. dwd has left

  360. dwd has joined

  361. krauq has left

  362. andy has joined

  363. Tobias has left

  364. pdurbin has left

  365. Tobias has joined

  366. dwd has left

  367. alacer has joined

  368. dele has joined

  369. alacer has left

  370. dele has left

  371. dele has joined

  372. dele has left

  373. APach has joined

  374. krauq has joined

  375. dele has joined

  376. dele has left

  377. dwd has joined

  378. marc_ has left

  379. Tobias has left

  380. Tobias has joined

  381. marc_ has joined

  382. dwd has left

  383. dwd has joined

  384. andy has left

  385. neshtaxmpp has left

  386. neshtaxmpp has joined

  387. sezuan has joined

  388. andy has joined

  389. sezuan has left

  390. sezuan has joined

  391. dwd has left

  392. Nekit has left

  393. Douglas Terabyte has left

  394. sezuan has left

  395. dwd has joined

  396. winfried has left

  397. winfried has joined

  398. pdurbin has joined

  399. dwd has left

  400. dwd has joined

  401. dwd has left

  402. pdurbin has left

  403. dwd has joined

  404. rtq3 has left

  405. rtq3 has joined

  406. dwd has left

  407. dwd has joined

  408. eevvoor has left

  409. dwd has left

  410. Nekit has joined

  411. debacle has left

  412. remko has left

  413. dwd has joined

  414. COM8 has joined

  415. wurstsalat has left

  416. COM8 has left

  417. Kacper has left

  418. goffi has left

  419. Kacper has joined

  420. lnj has left

  421. COM8 has joined

  422. COM8 has left

  423. debacle has joined

  424. wurstsalat has joined

  425. eevvoor has joined

  426. lumi has joined

  427. Kacper has left

  428. Yagiza has left

  429. rtq3 has left

  430. rtq3 has joined

  431. pdurbin has joined

  432. dwd has left

  433. dwd has joined

  434. dwd has left

  435. dwd has joined

  436. pdurbin has left

  437. Douglas Terabyte has joined

  438. zach has left

  439. zach has joined

  440. Douglas Terabyte has left

  441. Douglas Terabyte has joined

  442. dwd has left

  443. dwd has joined

  444. Douglas Terabyte has left

  445. dwd has left

  446. Lance has left

  447. dwd has joined

  448. Nekit has left

  449. Alex has left

  450. dwd has left

  451. dwd has joined

  452. Tobias has left

  453. Alex has joined

  454. dwd has left

  455. dwd has joined

  456. APach has left

  457. APach has joined

  458. dwd has left

  459. dwd has joined

  460. Douglas Terabyte has joined

  461. dwd has left

  462. Tobias has joined

  463. dwd has joined

  464. andy has left

  465. dwd has left

  466. dwd has joined

  467. lumi has left

  468. lumi has joined

  469. debacle has left

  470. rtq3 has left

  471. pdurbin has joined

  472. pdurbin has left

  473. lumi has left

  474. Wojtek has joined

  475. Wojtek has left