00:03:00 do we host official binaries in any form? if not, we don't need to rebuild them 00:06:00 aidanh: what do you mean by hosts? Those versions I mentioned are currently live and playable on CAO, CWZ, and there are likewise old versions on CBRO 00:06:14 s/hosts/host/ 00:06:51 CUE likewise hosting versions all the way back to 0.10 00:06:58 okay yeah that definitely counts 00:07:36 won't they have been patched already though? 00:07:52 or does the update-stable script not run periodically 00:08:15 it does run on some servers, but on CAO I don't think it can successfully build those old versions 00:08:52 not sure how CUE is set up, probably since development of those versions has long been dead, they did a one time thing, but presumably some of the servers like CUE and CWZ that added those old versions can still compile them 00:09:11 obviously we could just disable old versions on CAO since we have admin on that server 00:09:39 CBRO might be tricky, but probably johnstein would at least be willing to disable old versions if he doesn't have time to rebuild them 00:10:14 I forget, does the patch actually require full recompilation, or is it a lua-only change? 00:10:57 obviously if it's just a change to lua files, then no actual compilation would be needed if the file can be manually moved into place 00:11:48 full recompilation 01:18:23 well, it might be possible to monkey patch in some lua-only solution, but that'd require manual patches, meaning it could easily get removed accidentally at some point in the future 01:27:58 more broadly speaking, this sort of thing is why i think a single build server might be a good idea 01:28:28 or at least reproducible build environments, which the chroot stuff should do 03:09:49 Windows builds of master branch on crawl.develz.org updated to: 0.25-a0-647-gd602d06ee1 03:12:07 Unstable branch on crawl.beRotato.org updated to: 0.25-a0-647-gd602d06 (34) 03:25:40 aidanh: a single build server probably just isn't possible for servers like cwz and I think lld; I believe cwz applies some local patches for translation purposes 03:25:40 I think lld does so for webtiles 03:26:00 yeah fair enough 03:28:14 but to the original issue, if we wanted to be ready for anything public, sounds like we need to ask all admins to either disable those old versions they can't build, or rebuild them if they're able? 03:28:33 yes 03:32:39 we also need to update the changelogs and tag a release for all branches 03:33:02 iirc 0.24 has some updating to do 03:48:22 Monster database of master branch on crawl.develz.org updated to: 0.24-a0-443-g80245de385 04:02:20 03Aidan Holm02 07[server-chroot-upgrade] * 0.25-a0-648-g8ec19b6: Add server chroot migration scripts 10(4 weeks ago, 3 files, 368+ 0-) 13https://github.com/crawl/crawl/commit/8ec19b60b4f1 04:02:25 Branch pull/1293 updated to be equal with server-chroot-upgrade: 13https://github.com/crawl/crawl/pull/1293 04:56:28 New branch created: pull/1325 (1 commit) 13https://github.com/crawl/crawl/pull/1325 04:56:28 03Nikolai Lavsky02 07https://github.com/crawl/crawl/pull/1325 * 0.25-a0-645-gbd4a667: Allow autotravel to shafts (12196) 10(8 minutes ago, 1 file, 5+ 1-) 13https://github.com/crawl/crawl/commit/bd4a667f744d 05:11:26 advil: hard to say from inside the machine, to me I've always thought of it as "british engish without the bits even the brits don't use any more" 06:20:30 alexjurkiewicz: are you using py3 on cpo now? 06:33:37 There are major changes not recorded in the 0.17 changelog. 13https://crawl.develz.org/mantis/view.php?id=12230 by sdynet 06:48:09 advil: i'm not sure how far you went with mypy, but I've discovered it's basically totally useless unless you hint almost all functions 06:48:44 e.g. including giving __init__ functions a '() -> None' hint 06:55:39 -!- amalloy is now known as amalloy_ 08:49:17 aidanh well, I found tons of issues by using it 08:49:21 aidanh Tornado itself is thoroughly hinted, which probably helps 08:50:14 did you test with a full chroot setup? or just in the repo? 08:58:57 03Aidan Holm02 07* 0.25-a0-648-ge9e6354: Convert exception indexing to py3-compatible code 10(2 hours ago, 2 files, 4+ 4-) 13https://github.com/crawl/crawl/commit/e9e63544fe59 08:58:57 03Aidan Holm02 07* 0.25-a0-649-gc3cff19: Add type hints 10(2 hours ago, 1 file, 15+ 9-) 13https://github.com/crawl/crawl/commit/c3cff19e7c81 08:58:57 03Aidan Holm02 07* 0.25-a0-650-gd8b0990: Fix str/bytes issues 10(2 hours ago, 2 files, 3+ 4-) 13https://github.com/crawl/crawl/commit/d8b0990838b9 08:59:05 New branch created: pull/1326 (1 commit) 13https://github.com/crawl/crawl/pull/1326 08:59:05 03Goratrix02 07https://github.com/crawl/crawl/pull/1326 * 0.25-a0-648-g918ab3e: Add zombie hornet tile 10(3 minutes ago, 3 files, 2+ 0-) 13https://github.com/crawl/crawl/commit/918ab3ed0824 09:02:28 Unstable branch on crawl.kelbi.org updated to: 0.25-a0-650-gd8b0990838 (34) 09:03:01 03Aidan Holm02 07* 0.25-a0-651-g8c222c7: Remove open() call with both read and write modes 10(40 seconds ago, 1 file, 2+ 1-) 13https://github.com/crawl/crawl/commit/8c222c7a2bb3 09:17:29 Unstable branch on crawl.kelbi.org updated to: 0.25-a0-651-g8c222c7a2b (34) 09:17:32 The build is still failing. (server-chroot-upgrade - 8ec19b6 #12888 : Aidan Holm): https://travis-ci.org/crawl/crawl/builds/665129904 09:33:50 aidanh just in the repo, against tornado 6 09:33:59 earlier tornado versions don't have type annotations 09:34:45 without those type annotations, the ones I added to our code basically won't do anything 09:34:52 advil: i have tornado 4 working smoothly on py3 in a chroot; unfortunately, upgrading to tornado 5 causes a bunch of EIO errors in terminal.py that I don't understand 09:35:46 yeah; I discovered that an attribute was getting typed as Any because the __init__ method didn't have a () -> None annotation 09:37:14 re d8b099083, I've been trying to consistently use only Tornado tornado.escape calls: https://www.tornadoweb.org/en/stable/escape.html 09:38:11 so utf8 / to_unicode, but not encode/decode 09:38:34 it won't go wrong but that ensures type annotations 09:38:52 oh, good thinking 09:39:21 although I did check, and mypy does seem to work correctly with encode/decode 09:39:37 yeah I guess it should 09:39:45 the tornado calls are a bit more flexible too 09:43:11 in what way? passing through stuff if it's of the correct type already? 09:43:34 I was sort of thinking about down the track when we get rid of py2 support 09:43:47 although I suppose there's no point in thinking 10 years ahead 09:45:52 yeah, they're idempotent for their output types 09:46:36 i guess I couldn't swear that the python ones don't do that too 09:47:28 ok yeah AttributeError: 'bytes' object has no attribute 'encode' 09:57:58 I can take a look at py3+tornado 5 again, I have tested it I think? 09:58:11 I've been looking at terminal.py so I roughly know what that's supposed to be doing at least 10:02:48 do you have an example exception? 10:08:13 advil: https://0x0.st/iaQu.txt 10:18:51 03Goratrix02 07https://github.com/crawl/crawl/pull/1326 * 0.25-a0-649-gb5d0a6f: Adjust zombie hornet tile 10(3 minutes ago, 1 file, 0+ 0-) 13https://github.com/crawl/crawl/commit/b5d0a6f99116 11:53:45 aidanh does that just always happen? 11:54:13 so far I haven't replicated it locally 11:54:38 with python 3.7.6 and tornado 5.1.1 11:55:20 yeah all the time, seems like every time the terminal screen updates 11:55:49 i.e. saving and quitting immediately produces one exception, walking around produces more 12:03:17 odd 12:03:22 I take it this is in a chroot? 12:03:52 yep 12:06:47 that read call is exactly the one that is reading from the pty 12:09:21 my man page has this: EIO I/O error. This will happen for example when the process is in a background process group, tries to read from its controlling terminal, and either it is ignoring or blocking SIGTTIN or its process group is orphaned. 12:09:39 did the crawl process actually start? 12:09:50 yeah, the game works fine in webtiles 12:10:42 oh it's working but those exceptions are showing up in the log? 12:11:23 yeah 12:11:59 they all appear at once after the game exits, but that's likely just due to the async stuff 12:12:39 well, those would be the errors that happen if the child fd is closed 12:13:02 is a ttyrec getting written? 12:13:26 _handle_read is async but shouldn't be postponed that much 12:13:41 you could also add some logging to it to see if it is happening during play as well 12:19:14 that is, any time there is output from the terminal, _handle_read should be triggered fairly soon, and a ttyrec chunk should get written 12:19:59 my immediate guess is that that's probably still happening, but somehting is going wrong with the code in `poll` that is supposed to detect if the terminal is closed? 12:22:11 the ttyrec is still being written, and appears to be valid 12:24:37 Stable (0.23) branch on underhound.eu updated to: 0.23.1-93-ge536e68a2c 12:24:55 hm ok it seems like I was wrong about it happening once per screen render 12:26:54 clearer restatement: if the terminal gets disconnected, and the read handler is not removed properly in `poll`, then I think this is the error I'd expect in _handle_read if it gets called, which it probably will 12:37:12 that does seem to be the case, yes 12:37:44 not sure of the best way to handle this 12:38:42 write_input() calls poll() explicitly, but if I do that for _handle_read() is there a possibility of unread data being lost? 12:39:42 not sure...I'm also worried that there may be a version-specific interaction or bug here 12:40:57 can you test the possibility `poll` is in fact being called before those exceptions, and what it's doing to find the return code isn't working? 12:42:09 once the game is up and running, returncode should only ever be set in that function 12:45:13 when read() is called, returncode is None 12:49:10 it does seem odd that poll is called after read 12:52:27 I'm *pretty* sure that calling poll first and checking returncode would not lead to incomplete ttyrecs, to answer your earlier question 12:52:57 though I'm not sure what is going in poll really, and whether something might still be buffered after the fd is closed 13:05:21 i've posted some instructions on using the chroot scripts here: https://github.com/crawl/crawl/wiki/CPP-17-Upgrade 13:06:46 the resulting setup is a little strange in some ways, but it works well 13:07:39 unfortunately in order to use an up-to-date python 3, we need to chroot from the init script, which makes the rebuild page thing I was building not really feasible 13:07:41 Unstable branch on crawl.akrasiac.org updated to: 0.25-a0-651-g8c222c7 (34) 13:14:48 advil: i think we can leave that for now; i'd rather focus on upgrading to g++9 and py3 than from tornado 4 to 6 13:15:57 was that issue happening with tornado 6 too? 13:16:01 I think you said 5 above 13:16:33 03Aidan Holm02 07[server-chroot-upgrade] * 0.25-a0-652-g23614fb: Add server chroot migration scripts 10(4 weeks ago, 4 files, 406+ 0-) 13https://github.com/crawl/crawl/commit/23614fb844b2 13:16:39 Branch pull/1293 updated to be equal with server-chroot-upgrade: 13https://github.com/crawl/crawl/pull/1293 13:16:50 yes 13:16:50 4.0 is ok, 5.0 isn't; I didn't check any other 4.x releases 13:16:56 I don't think alexjurkiewicz has seen it either, so maybe it's something about the chroot config 13:17:06 at least, he hasn't mentioned seeing it 13:20:08 could be 14:02:15 The build was fixed. (server-chroot-upgrade - 23614fb #12895 : Aidan Holm): https://travis-ci.org/crawl/crawl/builds/665243021 15:49:57 -!- Euph0ria is now known as OICU812 17:00:49 advil: aidanh: if we do have a deadline of the 28th before that exploit info becomes public, should I go about contacting the various admins about either rebuilding or removing old versions of crawl? We could quickly update the old versions releases and make point release tags as well 17:01:08 but I feel we should contact admins sooner rather than later if the 28th is the actual date, to give them some time 17:07:31 aidanh: i am using py3.7 and latest tornado 17:08:13 aidanh: i probably missed this but why are you using 5 over 6 17:08:39 about mypy, I suggest running with --strict 17:09:30 and adding a whole bunch of # type: ignore comments to silence any issues with external libraries it gets wrong, and then working to zero errors. Rather than "adding types incrementally" as would be better 17:09:42 $work tried the latter, ran into many issues like what aidanh described and changed tack to the former 17:32:26 rikardo (L13 DsCj) ASSERT(ray.pos() == oldpos) in 'beam.cc' at line 4402 failed. (Lair:5) 18:01:14 -!- amalloy_ is now known as amalloy 18:40:43 kate--: Long time ago you made this commit: https://github.com/crawl/crawl/commit/07fcab1d610d . Wondering if your concern about using LOS_DEFAULT is about making the monster count too low, in which case we could do the whole thing during monster placement, so no monsters are lost 18:40:48 instead of doing after level gen 18:41:29 I ask because some starting vaults allow generating a big batch of monsters just outside of stairs due to how they use glass 18:41:48 so if we kept monsters out of LOS entirely in a way that had no effect on numbers of monsters, would you be ok with that? 19:01:17 Monster database of master branch on crawl.develz.org updated to: 0.24-a0-443-g80245de385 19:23:02 Unstable branch on underhound.eu updated to: 0.25-a0-651-g8c222c7a2b (34) 19:38:05 CDO gets a lot of compilation warnings, it seems; guess that's a byproduct of how old its GCC is 19:46:48 gammafunk: hmm, i have a feeling it was removing monsters that were supposed to be placed in the entry vault, although the commit message doesn't mention that 19:48:09 kate--: well, my proposal is to simply do this check properly in the level gen monster placement pass, which would prevent it from being an issue 19:48:28 i vaguely recall that being an issue at some point at least... possibly just also that the vaults at the time used glass in a way where it wasn't a problem and it was just zapping monsters that were a long distance away in terms of actual travel time 19:49:03 but yeah, just reworking it like that does sound good too 19:49:09 ok, I'll look into it 20:22:13 Monster database of master branch on crawl.develz.org updated to: 0.25-a0-651-g8c222c7a2b 21:21:12 -!- amalloy is now known as amalloy_ 22:32:52 gammafunk, yes, probably contacting them soon is best 22:33:12 I'll push updated changelogs and tags in an hour or two 22:33:16 thanks 22:34:24 alexjurkiewicz, you mean 4 over six? only due to this EIO error 22:35:40 alexjurkiewicz, thanks, I'll give --strict a go 22:37:08 it'd almost be helpful to have a mode which errors out whenever you have an inferred Any not explicitly marked as such 22:39:26 New branch created: pull/1327 (1 commit) 13https://github.com/crawl/crawl/pull/1327 22:39:26 03Byrel Mitchell02 07https://github.com/crawl/crawl/pull/1327 * 0.25-a0-645-gaaf3abd: Add room for tactics to arrival vaults in small.des 10(6 minutes ago, 2 files, 167+ 225-) 13https://github.com/crawl/crawl/commit/aaf3abd8a9ab 22:53:13 03gammafunk02 07* 0.25-a0-652-gc9638ee: Simplify and rebalance Frozen Ramparts 10(70 minutes ago, 2 files, 15+ 20-) 13https://github.com/crawl/crawl/commit/c9638ee9a8ed 23:02:49 Unstable branch on crawl.kelbi.org updated to: 0.25-a0-652-gc9638ee9a8 (34) 23:54:06 03Aidan Holm02 07* 0.25-a0-653-g6245e20: Add requirements.txt tools, formatting, and linting 10(3 weeks ago, 9 files, 229+ 0-) 13https://github.com/crawl/crawl/commit/6245e20cc037 23:54:06 03Aidan Holm02 07* 0.25-a0-654-g6255c8b: Fix lint errors 10(2 weeks ago, 1 file, 110+ 55-) 13https://github.com/crawl/crawl/commit/6255c8be1604 23:54:06 03Aidan Holm02 07* 0.25-a0-655-g74e85d6: Refactor userdb.py with a context manager 10(2 weeks ago, 1 file, 138+ 215-) 13https://github.com/crawl/crawl/commit/74e85d6d0855 23:54:06 03Aidan Holm02 07* 0.25-a0-656-gecb0247: Extract cookie authentication logic to its own file 10(12 days ago, 3 files, 73+ 34-) 13https://github.com/crawl/crawl/commit/ecb0247d0508 23:54:06 03Aidan Holm02 07* 0.25-a0-657-ge95d391: Add some test cases for cookie authentication 10(8 days ago, 1 file, 77+ 0-) 13https://github.com/crawl/crawl/commit/e95d391c2009