sinzui | wallyworld_: mumble? | 00:00 |
---|---|---|
wallyworld_ | yep | 00:01 |
=== wallyworld_ changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - wallyworld (*jtv) | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:209 - 0:[######=_]:256 | ||
wgrant | sinzui: Did you see the fallout from the flag-expired-memberships.py fix? | 00:48 |
LPCIBot | Project windmill-devel build #143: STILL FAILING in 1 hr 10 min: https://lpci.wedontsleep.org/job/windmill-devel/143/ | 00:51 |
timrc | lifeless, sorry, I'm a novice to lp... not sure I understand what you're saying on bug #724740. I thought that adding the mutator was how to run business logic when the attribute is set... | 02:01 |
_mup_ | Bug #724740: setting a ppa private cannot be done over the API <api> <oem-services> <ppa> <Launchpad itself:In Progress by timrchavez> < https://launchpad.net/bugs/724740 > | 02:01 |
timrc | lifeless, here's my code so far: http://bazaar.launchpad.net/~timrchavez/launchpad/set_ppa_private_from_api_724740/revision/13052 | 02:01 |
timrc | (sorry there are still some inconsistencies in the comments and no tests yet :/) | 02:03 |
* timrc ducks | 02:03 | |
StevenK | wgrant: Most of the failures for archiveuploder look like behaviour changes in notify_spr_less() | 02:24 |
StevenK | wgrant: Which I'm fixing | 02:24 |
StevenK | wgrant: Running -t archiveuploader to see what the fall-out is | 02:25 |
wgrant | StevenK: Hmm. | 02:46 |
LPCIBot | Project windmill-devel build #144: STILL FAILING in 1 hr 9 min: https://lpci.wedontsleep.org/job/windmill-devel/144/ | 02:51 |
StevenK | wgrant: Hm? | 02:57 |
wgrant | Indeed. | 02:57 |
wgrant | ! | 02:57 |
StevenK | wgrant: Down to one failure | 02:59 |
wgrant | StevenK: But who knows how many you broke in Soyuz :) | 02:59 |
wgrant | Anyway, let me review your diff. | 02:59 |
StevenK | I have local changes | 03:00 |
lifeless | timrc: hi | 03:00 |
StevenK | Including putting back sanitize_string :-( | 03:00 |
wgrant | StevenK: Why did the abomination need to return? | 03:00 |
lifeless | timrc: mutators can be used yes, but if we need it always then just using a property is better | 03:00 |
StevenK | wgrant: Since I can't call guess_encoding on a unicode string, and the mail text seems to change | 03:02 |
StevenK | For some tests it's unicode, and others it's ascii | 03:02 |
wgrant | StevenK: It'll automatically become unicode when a unicode is interpolated into it. | 03:02 |
wgrant | Because fuckyeah Python 2. | 03:02 |
wgrant | StevenK: This indicates that there are unicode-safety bugs. | 03:03 |
wgrant | StevenK: It should either always be a unicode or never be. | 03:03 |
StevenK | wgrant: Then there likely already were | 03:04 |
wgrant | Sure. | 03:04 |
StevenK | r13103 pushed | 03:04 |
wgrant | Hm. | 03:12 |
wgrant | The branch is shorter now? | 03:12 |
wgrant | Interesting. | 03:12 |
wgrant | StevenK: notify_spr_less seems to assume there's always an archive. | 03:12 |
wgrant | But that's not the case. | 03:13 |
wgrant | Or at least it shouldn't be. | 03:13 |
wgrant | StevenK: Perhaps s/notify_spr_less/reject_changes_file/? | 03:13 |
wgrant | I'd also continue to encourage you to remove get_status. | 03:14 |
StevenK | Oh, and just replace it with a dictionary? | 03:15 |
wgrant | The dictionary, yeah. | 03:23 |
wgrant | I'm doing a proper rereview now. | 03:23 |
StevenK | I've done those two suggestions locally | 03:23 |
wgrant | ACTION_DESCRIPTIONS[action] is not much worse than get_status(action) :) | 03:23 |
wgrant | Thanks. | 03:23 |
StevenK | The only test that still fails is testSourcePackageRecipeBuild_success_mail. Didn't poolie break that on purpose? | 03:24 |
StevenK | Ah, no. I've broken it so it sends mail | 03:25 |
StevenK | Ahh. I can't check PU.getSourceBuild() | 03:30 |
StevenK | :-( | 03:30 |
timrc | lifeless, this may sound dumb but when you say property are you referring to Python's @property? just making sure I'm understanding you correctly? | 03:32 |
StevenK | wgrant: I have those two changes to push, along with the fix for SPRB_success_mail. | 03:35 |
jtv-afk | hi wallyworld_ | 03:38 |
wgrant | StevenK: I'm reworking _sendNotification | 03:39 |
StevenK | wgrant: Oh, you're going to give me a patch? | 03:39 |
wgrant | Yes. | 03:39 |
wgrant | 'cause I was about to shred it in the review. | 03:40 |
wgrant | Decided I would be a bit kinder. | 03:40 |
StevenK | Who are you, and what have you done with the real wgrant? | 03:40 |
wallyworld_ | jtv-afk: hello | 03:43 |
jtv-afk | Oh, old nick | 03:43 |
=== jtv-afk is now known as jtv | ||
jtv | wallyworld_: any reviews you need me to mentor? | 03:43 |
=== StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: wallyworld (*jtv) | https://code.launchpad.net/launchpad-project/+activereviews | Critical bugs:209 - 0:[######=_]:256 | ||
wallyworld_ | jtv: thanks for asking. i assigned 2 to you. did you not get the email? | 03:44 |
StevenK | That '- ' was annoying me | 03:44 |
jtv | wallyworld_: Probably. But email is one of those "it's got to be in there somewhere" things. | 03:44 |
wallyworld_ | :-) | 03:44 |
jtv | Ah, there they are. | 03:48 |
wgrant | StevenK: Slow tests :( | 03:53 |
wgrant | But they seem happy with my +11/-53 so far. | 03:53 |
StevenK | Crumbs! | 03:56 |
StevenK | wgrant: My local branch has all of the archiveuploader tests passing | 03:57 |
wgrant | StevenK: Have some comments. | 04:00 |
StevenK | wgrant: Your commit messages makes me sad | 04:04 |
wgrant | StevenK: It sucked years before you got to it. | 04:05 |
StevenK | True | 04:05 |
lifeless | timrc: yes, I am | 04:06 |
wgrant | StevenK: send_mail/_sendMail/_sendNotification/send_message still seem like they're designed to confuse me. Let's see if we can merge/rename some of them. | 04:06 |
wgrant | And they're not to be confused with sendmail(), which does the actual work! | 04:07 |
StevenK | wgrant: I'm thinking about solving the two calls to _sendNotification in notify() | 04:08 |
StevenK | The only difference is the summary | 04:08 |
wgrant | send_mail can also easily be merged into _sendNotification. | 04:08 |
StevenK | wgrant: You say the logging of the mail is still duplicated -- however the level is different? | 04:10 |
wgrant | ... huh. | 04:11 |
wgrant | Make it all debug. | 04:11 |
wgrant | If you're doing a dryrun you should be using -v anyway, surely. | 04:11 |
wgrant | StevenK: What's the difference between the two _sendNotification calls? rejected doesn't send the file summary with OK/NEW/etc.? | 04:13 |
wgrant | That seems sort of trivial to sort out. | 04:13 |
StevenK | wgrant: summarystring for !rejected, summary_text for rejected | 04:14 |
StevenK | Only | 04:14 |
wgrant | StevenK: Do you like my slight _sendNotification simplification? | 04:16 |
StevenK | I do | 04:16 |
timrc | lifeless, gotcha... so when is it favorable to use a mutator vs. @property out of curiosity? | 04:16 |
StevenK | wgrant: Re: your "What did it do before?" question, exactly that. | 04:17 |
wgrant | Huh. | 04:17 |
wgrant | I hadn't seen that before. | 04:17 |
wgrant | OK. | 04:17 |
lifeless | timrc: when clients through the API should do different things than clients inside the appserver. | 04:18 |
StevenK | wgrant: It was inside notify() | 04:18 |
StevenK | wgrant: I'd love to drop the hasattr() hack, too | 04:20 |
StevenK | wgrant: But tests insist on passing in StringIO as the file_object | 04:20 |
wgrant | StevenK: We should find some other way. | 04:25 |
wgrant | StevenK: How was it done before? | 04:25 |
wgrant | Did it use packageupload.changesfile.filename or something? | 04:25 |
timrc | lifeless, okay. so if a mutator is used then clients within the appserver would basically need to call setPrivate explicitly rather then .private = boolean | 04:25 |
timrc | lifeless, @property would give a common interface for both | 04:25 |
StevenK | wgrant: It used packageupload.changesfile.filename | 04:26 |
wgrant | StevenK: :( OK | 04:26 |
wgrant | StevenK: We may want to rationalise this eventually. | 04:27 |
wgrant | So we take a filename and either changesfile string or object... not all three. | 04:27 |
StevenK | Mmmmm | 04:27 |
StevenK | wgrant: Does http://pastebin.ubuntu.com/613578/ satisfy your "Can haz map?" comment? | 04:28 |
wgrant | StevenK: It does indeed, but the location could be better. | 04:28 |
* StevenK ponders lunch. | 04:29 | |
wgrant | StevenK: So, do you have any more ideas for merging the Confusing Four? | 04:30 |
wgrant | send_mail can be pretty trivially folded into _sendNotification. | 04:30 |
StevenK | I agree about that | 04:30 |
StevenK | send_message() is also used by notify_spr_less's new name | 04:31 |
wgrant | _sendNotification can be folded into notify() | 04:31 |
wgrant | Right. | 04:31 |
wgrant | StevenK: Hm, notify_spr_less doesn't want to use _sendMail? | 04:31 |
StevenK | No, it's first argument is an apr | 04:32 |
StevenK | *SPR | 04:32 |
wgrant | It looks like it can be optional. | 04:32 |
wgrant | It says 'if spr:' | 04:32 |
wgrant | Indeed, it is optional. | 04:32 |
wgrant | Use it if you can. | 04:32 |
sinzui | wgrant: I did not see the fallout. | 04:33 |
wgrant | Then send_message can be folded into there. | 04:33 |
wgrant | sinzui: It hadn't been sending warnings. | 04:33 |
wgrant | sinzui: So about 300 memberships expired without warning. | 04:33 |
lifeless | timrc: right | 04:33 |
wgrant | sinzui: But only 20ish were in restricted teams that they could have renewed themselves, and I think the owners have fixed those. | 04:33 |
lifeless | mutators are basically fugly | 04:33 |
sinzui | wgrant: :( | 04:33 |
timrc | lifeless, aye | 04:33 |
sinzui | I had answered a users question today saying all was fixed. He had noticed his membership was expiring and had not gotten an email | 04:34 |
wgrant | lifeless: Let's rewrite Launchpad in Java. | 04:35 |
lifeless | wgrant: indeed, why have one problem when we can have two! | 04:35 |
timrc | wgrant, I think we should rewrite it in something more intuitive, like COW (http://www.bigzaphod.org/cow/) | 04:35 |
wgrant | timrc: But one of the instructions is actually intuitive :( | 04:37 |
StevenK | wgrant: The log level change is going to cause widespread changes to doctests | 04:38 |
wgrant | StevenK: Indeed... We'll see how widespread it is. | 04:39 |
wgrant | StevenK: If it's too hard, use a different log method for each, but still dedupe. | 04:39 |
StevenK | wgrant: Changes made, and your branch merged. | 05:28 |
StevenK | +16/-14 for nascent-announcements.txt | 05:28 |
StevenK | Which is much less than I feared. | 05:28 |
StevenK | wgrant: _sendNotification folded into notify() | 05:32 |
LPCIBot | Project windmill-db-devel build #328: STILL FAILING in 1 hr 9 min: https://lpci.wedontsleep.org/job/windmill-db-devel/328/ | 05:32 |
wgrant | StevenK: Hexcellent. | 05:35 |
wgrant | Hmm, we haven't harrassed the LOSAs at all today :( | 05:37 |
wgrant | We are not up to our usual standard. | 05:37 |
* StevenK looks at merging send_mail() into notify() | 05:37 | |
wgrant | StevenK: Yay | 05:37 |
wgrant | Er. | 05:37 |
wgrant | No. | 05:37 |
StevenK | Indeed, we call it twice | 05:38 |
StevenK | [13:30] < wgrant> send_mail can be pretty trivially folded into _sendNotification. | 05:38 |
StevenK | :-) | 05:38 |
wgrant | StevenK: Oh, right, send_mail, not send_message. | 05:39 |
wgrant | send_mail can be folded in. | 05:39 |
wgrant | send_message should be merged into _sendMail, but that first requires that reject_changes_file use the latter instead. | 05:39 |
StevenK | wgrant: However, we call send_mail twice -- once for annoucements and once for the message itself. | 05:41 |
wgrant | StevenK: The args are the same except for action, recipients, from_addr and bcc_addr, AFAICT. | 05:42 |
wgrant | Also, the subject can be shared, but the body cannot. | 05:42 |
wgrant | Possibly reintroduce the do_send_mail closure. | 05:43 |
wgrant | But at the end this time. | 05:43 |
wgrant | Will save like 13 arguments and a confusing function name. | 05:43 |
lifeless | poolie: you wanted to catch up more generally ? | 05:53 |
=== almaisan-away is now known as al-maisan | ||
StevenK | wgrant: notification.py | 18 ++---------------- | 05:57 |
StevenK | wgrant: From killing send_message | 05:57 |
jtv | StevenK: I notice that DSDJob.run finds its DSD by {distroseries, sourcepackagename}. Doesn't that become ambiguous with multi-parent? | 05:58 |
StevenK | jtv: Yes, that should change. | 05:58 |
StevenK | wgrant: Make that +2/-19 | 05:59 |
jtv | StevenK: do we have a bug/card for that? | 05:59 |
StevenK | I can't recall off the top of my head | 05:59 |
jtv | OK, I'll look. | 06:00 |
wgrant | StevenK: :) | 06:00 |
jtv | StevenK: bug 758906 may be a bit general | 06:00 |
_mup_ | Bug #758906: Allow a derived series to have multiple parents <derivation> <Launchpad itself:Triaged> < https://launchpad.net/bugs/758906 > | 06:00 |
StevenK | AssertionError: Invalid recipient: '' in ['D', 'a', ... | 06:00 |
* StevenK digs | 06:00 | |
wgrant | StevenK: Does that mean that send_mail and send_message are both dead? | 06:00 |
StevenK | send_mail is not, send_message is | 06:01 |
wgrant | I am disappoint. | 06:01 |
StevenK | Of course you are. | 06:01 |
wgrant | I'm hoping that notification.py drops below 500 lines. | 06:02 |
poolie | hi lifeless | 06:02 |
lifeless | o/ poolie | 06:03 |
StevenK | wgrant: 509 | 06:03 |
poolie | sure | 06:03 |
poolie | now if you like | 06:03 |
wgrant | StevenK: Victory is near. | 06:03 |
lifeless | poolie: that would be great. shall we try skype? | 06:03 |
StevenK | wgrant: What was your plan to kill send_mail? | 06:04 |
wgrant | StevenK: Give me a sec. | 06:09 |
StevenK | wgrant: My branch has also fallen behind Full HD | 06:14 |
wgrant | StevenK: Hm, I have an odd failure in distroseriesqueue-notify.txt. | 06:16 |
wgrant | Have you fixed that one yet? | 06:16 |
StevenK | I've not been running the soyuz tests | 06:16 |
wgrant | r13104 broke it. | 06:19 |
StevenK | :-( | 06:19 |
StevenK | Ah, that could be the DEBUG vs INFO | 06:20 |
wgrant | Hm, possibly. | 06:20 |
wgrant | Doesn't look like it, though. | 06:20 |
StevenK | I'll dig when archiveuploader stops running | 06:20 |
wgrant | Also, just found a bug in r13104 | 06:21 |
wgrant | - for bpr in bprs: | 06:21 |
wgrant | - names.add(bpr.build.source_package_release.name) | 06:21 |
wgrant | - version = bpr.build.source_package_release.version | 06:21 |
wgrant | + elif bprs: | 06:21 |
wgrant | + names.add(bpr[0].build.source_package_release.name) | 06:21 |
wgrant | + version = bpr[0].build.source_package_release.version | 06:21 |
wgrant | You need to add the names even if there are sprs. | 06:21 |
wgrant | Just not the version. | 06:21 |
wgrant | Oh. | 06:22 |
wgrant | Heh. | 06:22 |
wgrant | It was the DEBUG/INFO change: the unification added some new fields. | 06:22 |
StevenK | Ah | 06:22 |
StevenK | Sorry, I fixed that locally | 06:22 |
StevenK | In r13105 | 06:23 |
wgrant | Great. | 06:23 |
StevenK | Do you have a diff for the -notify change? | 06:23 |
wgrant | Just pushing. | 06:23 |
StevenK | Or have you not fixed it? | 06:23 |
wgrant | Oh. | 06:24 |
wgrant | No, that one I haven't fixed. | 06:24 |
wgrant | There will be many more like it. | 06:24 |
wgrant | I'm pushing the send_mail merge. | 06:24 |
wgrant | Done. | 06:24 |
StevenK | I've just pushed r13107 | 06:24 |
wgrant | Hm. | 06:24 |
wgrant | Have you? | 06:25 |
StevenK | Pushing | 06:25 |
StevenK | When that returns, I'll re-merge your branch | 06:25 |
StevenK | Hm. No progress either | 06:25 |
StevenK | connect(4, {sa_family=AF_INET, sin_port=htons(443), sin_addr=inet_addr("91.189.89.225")}, 16 | 06:26 |
StevenK | Odd | 06:26 |
StevenK | ssh: connect to host bazaar.launchpad.net port 22: Connection timed out | 06:30 |
StevenK | Hmmm | 06:30 |
StevenK | But ssh -vv connects | 06:31 |
wgrant | WFM :( | 06:31 |
StevenK | So I'm confused | 06:31 |
StevenK | Ah, there it goes | 06:31 |
StevenK | wgrant: Sorry, pushed. | 06:31 |
* StevenK attempts to merge in wgrant's latest branch, dies from conflicts | 06:34 | |
wgrant | :( | 06:34 |
StevenK | wgrant: I can't make sense of them either | 06:34 |
wgrant | Oh? | 06:34 |
wgrant | Let me see. | 06:34 |
wgrant | zomg conflicts | 06:34 |
wgrant | Oh. | 06:35 |
wgrant | You demolished _sendNotification. | 06:35 |
wgrant | I see. | 06:35 |
StevenK | You said to? :-)( | 06:36 |
StevenK | s/(// | 06:36 |
wgrant | StevenK: Pushed. You should just be able to pull. | 06:41 |
wgrant | 497 lines. | 06:41 |
StevenK | \o/ | 06:42 |
* StevenK looks at distroseriesqueue | 06:44 | |
wgrant | StevenK: Can you also fix bcc_addr calculation? | 06:45 |
wgrant | StevenK: It should use the spr name and then fall back to the first bpr name. | 06:45 |
wgrant | StevenK: And not duplicate the template. | 06:45 |
StevenK | wgrant: http://pastebin.ubuntu.com/613612/ | 06:47 |
wgrant | StevenK: elif bprs | 06:48 |
wgrant | StevenK: I'm still not quite sure how notification.py has ended up 20% shorter, despite some stuff being moved into it from queue.py... | 06:53 |
StevenK | Haha | 06:53 |
StevenK | Iz bonus | 06:53 |
StevenK | wgrant: Fixed distroseriesqueue* | 06:54 |
wgrant | StevenK: I would avoid further elision like the nascentupload-announcements.txt fix. | 06:55 |
wgrant | It may conceal unexpected Bcc and From additions. | 06:55 |
StevenK | :-( | 06:55 |
StevenK | How did you know that's how I fixed them? | 06:56 |
wgrant | Heh | 06:56 |
wgrant | I was actually typing that before you said you'd fixed them :( | 06:56 |
StevenK | Oh, so since I've done it, I can leave it? :_) | 06:56 |
wgrant | No. | 06:57 |
StevenK | Should I fix nascentupload-announcements.txt as well? | 06:58 |
wgrant | StevenK: Ideally. | 06:58 |
lifeless | cody-somerville: your bug is fixed; will be deployed monday | 06:58 |
StevenK | % psql -l | egrep -c 'ftest_[0-9]' | 07:03 |
StevenK | 8 | 07:03 |
StevenK | With no test suite running :-/ | 07:03 |
StevenK | wgrant: distroseriesqueue* fixed properly | 07:08 |
wgrant | Great. | 07:08 |
wgrant | I think this is just about done. | 07:08 |
StevenK | The only thing I can think of is the hasattr() hack | 07:09 |
wgrant | Yes. | 07:09 |
wgrant | That's only used by notify(), right? | 07:09 |
wgrant | An extra arg at that single level won't hurt too much. | 07:10 |
StevenK | No, reject_changes_file | 07:10 |
wgrant | Well, yes, but that's called immediately by notify() | 07:10 |
wgrant | So it doesn't affect the majority of the code. | 07:10 |
StevenK | Bah, I called it reject_changes_file*s* ? | 07:11 |
wgrant | :( fixit | 07:11 |
StevenK | Fixed | 07:11 |
StevenK | wgrant: r13111 pushing | 07:17 |
StevenK | Hmm, it's back over Full HD again. | 07:18 |
=== al-maisan is now known as almaisan-away | ||
StevenK | wgrant: Diff in the MP has updated, once more with feeling? | 07:21 |
wgrant | StevenK: Soyuz tests are passing? | 07:28 |
StevenK | Still running archivepublisher | 07:29 |
StevenK | But I can let you know in 30 minutes :-( | 07:29 |
wgrant | So, I'll rereview in a sec. | 07:30 |
StevenK | wgrant: Running soyuz now, no failures in archivepublisher | 07:30 |
wgrant | What are your next steps? | 07:30 |
wgrant | After this branch? | 07:30 |
StevenK | I was going to say hook this into the package copier, but that is dangerous | 07:31 |
wgrant | It might be worth seeing how hard it is to extract reject_changes_file() from notify(), making archiveuploader call it directly. | 07:31 |
wgrant | But if you want to go directly to the copier goal, you'll need to wean notify() and co. off the changesfile. | 07:31 |
StevenK | I tried that, archiveuploader deals with both forms of rejection in one method | 07:31 |
wgrant | Stop using it for Changed-By and Maintainer, for example. | 07:31 |
wgrant | Bah. | 07:31 |
wgrant | That's stupid. | 07:31 |
wgrant | But OK. | 07:32 |
StevenK | My concern with the package copier calling it is that notify() is fairly heavyweight, and the package copier needs to be lean and fast | 07:32 |
wgrant | Does it? | 07:33 |
StevenK | Otherwise copying times out and people yell at me. :-( | 07:33 |
wgrant | These copies won't be done inline. | 07:33 |
StevenK | Ahh | 07:33 |
wgrant | Well, for security copies they probably will for the short-term. | 07:34 |
StevenK | So call notify() in PCJ, *not* do_copy | 07:34 |
wgrant | But this is pretty light-weight... | 07:34 |
wgrant | No, do_copy. | 07:34 |
wgrant | But only security copies and PCJ will use it for now. | 07:34 |
StevenK | That's fairly easy guarded | 07:34 |
persia | On a vaguely related note, did the job to pro[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[Ccess all the old copyright files ever run? | 07:34 |
wgrant | No need. | 07:34 |
wgrant | The other types of copies are unsupported. | 07:34 |
wgrant | persia: Old changelog files? Yes. | 07:35 |
=== almaisan-away is now known as al-maisan | ||
persia | Oh, excellent | 07:35 |
StevenK | persia: It took one month to run | 07:35 |
StevenK | persia: And processed roughly 580,000 SPRs. | 07:35 |
wgrant | Only 'cause you threw away my good one :P | 07:35 |
persia | StevenK: It took about one year to schedule, so I'm happy with the run time :) | 07:35 |
StevenK | So we thanked it by deleting it from the codebase. | 07:35 |
StevenK | wgrant: I got lifeless'd | 07:35 |
StevenK | wgrant: And I didn't throw it away, it mutated ... | 07:36 |
StevenK | wgrant: Uh? What about ppa-to-ppa copies? | 07:36 |
wgrant | StevenK: They shouldn't announce. | 07:36 |
wgrant | We will handle that in the integration. | 07:37 |
StevenK | Clearly | 07:37 |
wgrant | But it should be handled with the rest of the do-not-announce logic. | 07:37 |
wgrant | Not by not calling notify(). | 07:37 |
StevenK | Right | 07:37 |
StevenK | wgrant: Are you reviewing, or waiting for soyuz test results? | 07:37 |
StevenK | Or doing something else entirely :-) | 07:38 |
wgrant | Will look shortly. | 07:38 |
StevenK | wgrant: 2 failures in soyzu | 08:07 |
StevenK | *soyuz | 08:07 |
StevenK | They're both doctests, so I guess it's more INFO vs DEBUG fallout | 08:07 |
wgrant | StevenK: Have you disposed of _filename yet? | 08:22 |
StevenK | wgrant: Yes | 08:24 |
StevenK | Trying to work out the xx-queue-pages.txt failure | 08:24 |
StevenK | soyuz-set-of-uploads failed due to INFO vs DEBUG | 08:24 |
wgrant | The rejection message seems to be None. | 08:26 |
StevenK | Yes, I think I've found the bug. | 08:26 |
StevenK | And found a stray place _filename hasn't been erricated yet | 08:27 |
StevenK | wgrant: r13112 pushed. | 08:31 |
StevenK | wgrant: Did you notice my drive-by to drop pocketsuffix from queue? | 08:32 |
=== al-maisan is now known as almaisan-away | ||
wgrant | StevenK: I WTF'd at it for a minute and then worked out it was a drive-by, yes. | 08:32 |
wgrant | *Not* really the right sort of branch for drive-bys, but I won't hurt you too much. | 08:32 |
StevenK | Well, true, it's large and hurty enought | 08:33 |
StevenK | s/t$// | 08:33 |
StevenK | wgrant: Diff updated. | 08:34 |
wgrant | StevenK: The summarystring stuff could do with a shuffle. | 08:40 |
StevenK | wgrant: Er, which bit? | 08:40 |
wgrant | I'd move the buildSummary bit (line 144) into an else block after the "if action == 'rejected'" | 08:40 |
wgrant | Since the rejected bit clobbers it. | 08:40 |
StevenK | wgrant: Done | 08:42 |
wgrant | StevenK: Could you also de-underscore and de-CamelCase the remaining functions? | 08:51 |
wgrant | Apart from that I think it is pretty much landable. | 08:51 |
wgrant | We will see Julian scream in a few minutes, I guess? | 08:51 |
mrevell | How do? | 08:56 |
StevenK | wgrant: Does mean you're willing to Approve it? | 08:59 |
StevenK | s/s m/s that m/ | 09:00 |
=== jtv1 is now known as jtv | ||
jml | huwshimi: hi | 09:01 |
huwshimi | jml: Hello! | 09:01 |
StevenK | wgrant: r13113 pushed. | 09:02 |
jml | huwshimi: let's talk :) | 09:02 |
huwshimi | jml: Skype? | 09:02 |
StevenK | wallyworld_: Are you still the OCR? | 09:05 |
wallyworld_ | StevenK: perhaps not anymore | 09:05 |
wallyworld_ | i should change the topic | 09:05 |
* wallyworld_ is about to eat dinner | 09:05 | |
=== wallyworld_ changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: | Critical bugs:209 - 0:[######=_]:256 | ||
=== StevenK changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs:209 - 0:[######=_]:256 | ||
StevenK | I wonder if that 209 count is still right | 09:06 |
wgrant | It's 210 now, I think. | 09:07 |
wgrant | Possibly more. | 09:07 |
wallyworld_ | it seems to be stuck around 200 :-( | 09:07 |
wgrant | It's decreasing. | 09:07 |
wgrant | But then stuff gets escalated. | 09:07 |
wallyworld_ | right | 09:08 |
wgrant | http://webnumbr.com/launchpad-critical-bugs | 09:08 |
wallyworld_ | nice graph. i hadn't seen that before | 09:08 |
wgrant | There are 9 escalated bugs. | 09:10 |
StevenK | wgrant: The diff has updated, can haz comment/approve? | 09:10 |
wgrant | bigjools must be subjected to it first. | 09:11 |
StevenK | bigjools: https://code.launchpad.net/~stevenk/launchpad/refactor-notification/+merge/61919 | 09:11 |
bigjools | bzr repacking a commit when you just want to push before your battery runs out is sub optimal | 09:12 |
bigjools | hey wallyworld_ you're up late | 09:12 |
adeuring | goodmorning | 09:12 |
wgrant | The notification.py diff is pretty much useless, but the new file is short and pretty readable. | 09:13 |
wgrant | And self-contained. | 09:13 |
lifeless | http://webnumbr.com/.join(launchpad-oops-bugs.all,launchpad-timeout-bugs.all,launchpad-critical-bugs.all) | 09:19 |
=== lifeless changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs:206 - 0:[######=_]:256 | ||
jtv | Who's up for a review? https://code.launchpad.net/~jtv/launchpad/db-bug-788526/+merge/62623 | 09:24 |
adeuring | jtv: I'll look | 09:33 |
=== adeuring changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: adeuring | Critical bugs:209 - 0:[######=_]:256 | ||
jtv | thanks adeuring | 09:34 |
LPCIBot | Project windmill-db-devel build #329: STILL FAILING in 1 hr 8 min: https://lpci.wedontsleep.org/job/windmill-db-devel/329/ | 09:36 |
StevenK | Dear Unity, why are you making my laptop screen flicker? | 09:41 |
danilos | StevenK: it's not Unity, it's me! | 09:48 |
StevenK | danilos: How are you doing that, then? :-) | 09:48 |
danilos | StevenK: just saying I might drop by and then it shudders (manifests as flicker ;)) | 09:49 |
=== almaisan-away is now known as al-maisan | ||
StevenK | wgrant: bigjools has approved, your turn | 10:26 |
adeuring | jtv: r=me | 10:32 |
jtv | thanks! | 10:32 |
jml | Food time!!#@@!# | 10:33 |
jml | (I'm pretty excited about it) | 10:33 |
wgrant | StevenK: It is done. | 10:35 |
bigjools | wgrant: I'm sad that you're not on maintenance rotation any more, I was going to press-gang you into fixing the FatalUploadError-generating-an-oops-for-bad-gpg-signatures annoyance | 10:36 |
bigjools | since every single soyuz oops for the last few days has been those | 10:37 |
wgrant | bigjools: As I said, I was looking at that last week, but got distracted by the whole epic failure thing. | 10:37 |
wgrant | Yeah. | 10:37 |
wgrant | The missing mandatory field errors are now replaced by those. | 10:37 |
wgrant | Since it does signature verification first. | 10:37 |
StevenK | wgrant: bigjools wished for docstrings, so 527 | 10:37 |
wgrant | bigjools is a terrible person. | 10:37 |
wgrant | But probably correct. | 10:37 |
StevenK | Haha | 10:37 |
* bigjools is merely enforcing the existing rules ;) | 10:38 | |
wgrant | At least we removed a few functions that would have also needed 15-20 line docstrings. | 10:38 |
bigjools | yarp | 10:39 |
wgrant | I'm sure I can refactor some more out of it, but this is workable, landable, somewhat reviewable, and makes me cry less. | 10:39 |
lifeless | gpghandler-service ftw | 10:40 |
wgrant | Yes | 10:40 |
wgrant | Hopefully first thing. | 10:40 |
lifeless | wgrant: have you seen https://dev.launchpad.net/ArchitectureGuide/ServicesRequirements ? | 10:40 |
wgrant | I have. | 10:40 |
lifeless | good ;) | 10:40 |
wgrant | But it's 10pm on your Friday night, so you are not here. | 10:41 |
lifeless | I am writing up a mail to the list even now | 10:41 |
lifeless | I have a cat nestled in the crook of my legs, wife on the couch beside me and tv on | 10:41 |
wgrant | Seeing KPI used in a technical document makes me cringe, but I will survive. | 10:41 |
=== al-maisan is now known as almaisan-away | ||
LPCIBot | Project windmill-devel build #145: STILL FAILING in 1 hr 9 min: https://lpci.wedontsleep.org/job/windmill-devel/145/ | 10:46 |
jml | actually, still no food, and I have to run an errand. | 10:47 |
jml | back soon. | 10:47 |
=== jtv is now known as jtv-afk | ||
jml | back | 11:23 |
=== jtv-afk is now known as jtv | ||
adeuring | is anybody aroubd with Twisted-fu? I'm trying to let the test-keyserver return a 500 error when a non-existing key is looked up. (That's what our real-life keyserver does, really) | 11:34 |
wgrant | A 500? | 11:35 |
wgrant | That would be an SKS bug. | 11:35 |
adeuring | Using ErroPage() seems to work, but how can I test this? | 11:35 |
adeuring | wgrant: yes, it is -- but should we fix this too? | 11:35 |
adeuring | wgrant: just try http://keyserver.ubuntu.com:11371/pks/lookup?search=0x6F0DAED1&op=vindex | 11:36 |
adeuring | wgrant: but anyway, even if it would return a 404: My question is: How can I test that our test keyserver returns a 404 or 500 or whatever other error? | 11:40 |
wgrant | Nobody has done anything significant to zeca in quite a while... I'm not sure if it's tested. | 11:41 |
* wgrant looks around. | 11:41 | |
wgrant | Oh, the tests aren't too bad. | 11:42 |
wgrant | adeuring: So you're not sure how to assert an HTTP error in test_web? | 11:42 |
adeuring | wgrant: right | 11:43 |
adeuring | wgrant: Returning ErrorPage(...) in web.py _seems_ to work, bt I'd like to test that properly... | 11:43 |
wgrant | adeuring: I presume twisted.web.client.getPage calls the errback if an error occurs. | 11:45 |
wgrant | Yeah: "Download a page. Return a deferred, which will callback with a page (as a string) or errback with a description of the error." | 11:45 |
adeuring | wgrant: I have no real clue about twisted... So I would have to add an error callback? | 11:45 |
wgrant | adeuring: getPage returns a Deferred, to which you can addCallback and addErrback. | 11:46 |
wgrant | adeuring: You'll see it currently uses addCallback to add an assertion. | 11:46 |
wgrant | On the success case. | 11:46 |
adeuring | wgrant: ah, right! thanks! | 11:46 |
spiv | adeuring: twisted.trial.unittest.TestCase has an assertFailure method that may help: http://twistedmatrix.com/documents/current/api/twisted.trial.unittest._Assertions.html#failUnlessFailure | 11:52 |
adeuring | spiv: thanks! | 11:52 |
spiv | adeuring: (despite the API doc link, the preferred name for that method is assertFailure not failUnlessFailure) | 11:53 |
spiv | adeuring: the basic trick to know is that trial's TestCase allow you to return a Deferred from your test method (and setUp etc), and the test will wait for the result/failure of that before completing. | 11:54 |
adeuring | spiv: ok | 11:54 |
jml | spiv: actually, most of our Twisted tests don't use trial TestCase | 11:54 |
spiv | jml: *shudder* | 11:55 |
jml | spiv: no, it's actually awesome | 11:55 |
spiv | jml: awesome can make a person shudder too! | 11:55 |
jml | spiv: 'run_tests_with = AsynchronousDeferredRunTest' | 11:55 |
spiv | jml: the interface for test writers is approximately the same? | 11:55 |
jml | spiv: yeah. things like the assert you mentioned are free-floating functions | 11:56 |
jml | spiv: and it's more strict with reactor cleanup | 11:56 |
jml | (and there's more helpers for debugging) | 11:56 |
jml | (and you need to do less multiple inheritance) | 11:56 |
spiv | jml: \o/ | 11:57 |
jml | spiv: http://readthedocs.org/docs/testtools/en/latest/for-test-authors.html#twisted-support | 11:57 |
* henninge lunches | 12:44 | |
=== henninge is now known as henninge-lunch | ||
=== henninge-lunch is now known as henninge | ||
=== almaisan-away is now known as al-maisan | ||
=== bac changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: adeuring, bac | Critical bugs:209 - 0:[######=_]:256 | ||
bac | hello adeuring. busy today? | 13:26 |
adeuring | bac: not really | 13:26 |
henninge | Hi! I have re-installed my laptop and used rocketfuel-setup to get my LP setup going again. I also had saved my homedir and copied it back to the new installation, so I may have mixed stuff. | 13:34 |
henninge | Now make schema won't work, it breaks off like this: http://paste.ubuntu.com/613727/ | 13:34 |
henninge | The last line is about "ident authentification failing for user henning" | 13:35 |
henninge | What's missing? | 13:35 |
henninge | Would rocketfuel-setup not create a user for my account? | 13:39 |
StevenK | rf-setup does not run utilities/launchpad-database-setup | 13:39 |
henninge | oh | 13:40 |
StevenK | henninge: "utilities/launchpad-database-setup $(whoami)" | 13:40 |
* henninge should have read that again | 13:40 | |
henninge | StevenK: thanks! | 13:40 |
=== salgado_ is now known as salgado | ||
StevenK | I may be wrong, the rf-setup code makes me sob. | 13:41 |
henninge | no, it's coming back to me that we split that back when we open sourced because people did not like rf to mess with their database. | 13:42 |
StevenK | Well, truth be told, rf-setup is not something to be run often | 13:42 |
henninge | exactly | 13:42 |
=== Ursinha-afk is now known as Ursinha | ||
henninge | make schema is doing what it should now. ;-) | 13:43 |
henninge | now henninge can run tests ... | 13:43 |
* StevenK high fives henninge | 13:45 | |
henninge | ;-) | 13:45 |
=== al-maisan is now known as almaisan-away | ||
=== almaisan-away is now known as al-maisan | ||
=== Ursinha is now known as Ursinha-afk | ||
=== Ursinha-afk is now known as Ursinha | ||
bac | hi sinzui, gary says you brought up bug 186660 to him recently as something we might look at soon. it would possibly close several bugs but none are marked critical. | 14:13 |
_mup_ | Bug #186660: Launchpad shouldn't store wiki names <lp-registry> <users> <Launchpad itself:Triaged> < https://launchpad.net/bugs/186660 > | 14:13 |
sinzui | bac: That is right. We have ignored the issue for many years. I was just noting that with the SSO change last year. We might be able to close all wikiname bugs except the one saying it should be removed | 14:14 |
jtv | allenap: you've got a test here called test_requestUpgrade_is_efficient. It seems to assert that the query count does not increase with the number of jobs it needs to create. I'm not so sure Storm will let us do that. | 14:15 |
jtv | bac: I've got an oversized and tedious MP here, and I have to leave. But _if_ you have no problem with that, then I'd be grateful if you could review! https://code.launchpad.net/~jtv/launchpad/db-bug-788956/+merge/62669 | 14:24 |
bac | jtv: you're a natural-born salesman | 14:24 |
jtv | Yuck. | 14:24 |
jtv | I've done sales, but I'm only good at it if I believe in what I sell. | 14:24 |
bac | who could pass oversized, tedious, and unattended? | 14:24 |
jtv | You could if you wanted to! | 14:25 |
bac | jtv: i'll have look in a bit | 14:25 |
jtv | Great, thanks | 14:25 |
jtv | Have a good weekend, everyone! | 14:40 |
=== Ursinha is now known as Ursinha-afk | ||
=== Ursinha-afk is now known as Ursinha | ||
allenap | gmb: Do I get extra karma for getting two [r=allenap]s into a commit message? ;) | 15:13 |
gmb | allenap: Sadly not :). | 15:14 |
gmb | Hahah. "Strongly suggest you use lp-land." I did and it added the extra tags. Unhelpful. | 15:15 |
sinzui | jcsackett: so you have time to talk? | 15:16 |
jcsackett | sinzui: sure. mumble or sip? | 15:16 |
sinzui | sip? | 15:17 |
sinzui | We miss connected | 15:18 |
jcsackett | we did. :-P | 15:18 |
LPCIBot | Project windmill-db-devel build #330: STILL FAILING in 1 hr 12 min: https://lpci.wedontsleep.org/job/windmill-db-devel/330/ | 15:42 |
=== al-maisan is now known as almaisan-away | ||
=== Ursinha is now known as Ursinha-afk | ||
=== Ursinha-afk is now known as Ursinha | ||
abentley | adeuring or bac: could you please review https://code.launchpad.net/~abentley/launchpad/duplicate-msgid/+merge/62697 ? | 16:34 |
adeuring | abentley: sure | 16:34 |
abentley | adeuring: thanks. | 16:34 |
=== matsubara_ is now known as matsubara | ||
adeuring | abentley: r=me | 16:53 |
abentley | adeuring: thanks. | 16:53 |
LPCIBot | Project windmill-devel build #146: STILL FAILING in 1 hr 13 min: https://lpci.wedontsleep.org/job/windmill-devel/146/ | 16:55 |
LPCIBot | Project windmill-db-devel build #331: STILL FAILING in 1 hr 7 min: https://lpci.wedontsleep.org/job/windmill-db-devel/331/ | 17:11 |
abentley | bac: does OOPS-1963SMS24 make any sense to you? It's apparently the cause of bug #784008. | 17:11 |
_mup_ | Bug #784008: problem when pushing fix for a fix-committed bug <branch-scanner> <oops> <Launchpad itself:Triaged> < https://launchpad.net/bugs/784008 > | 17:11 |
* bac looks | 17:12 | |
gmb | adeuring, bac : Could one of you take a look at https://code.launchpad.net/~gmb/launchpad/choose-affected-product-oops-bug-370117/+merge/62704 for me? | 17:17 |
bac | gmb: i will | 17:17 |
gmb | bac: Thankee | 17:17 |
bac | abentley: the OOPS does not make sense to me b/c the code it references no longer exists. | 17:21 |
abentley | bac: Thanks. I guess the bug probably is fixed, too, but I'll poke at that later. | 17:22 |
bac | abentley: i hope so... | 17:22 |
bac | gmb: short, sweet, r=bac | 17:23 |
gmb | bac: Ta. | 17:23 |
abentley | bac: I have trouble seeing why the bug and the oops would be connected, so it's possible another issue was at play for the oops, and the bug still exists. | 17:24 |
=== salgado is now known as salgado-lunch | ||
=== matsubara is now known as matsubara-lunch | ||
=== adeuring changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: bac | Critical bugs:209 - 0:[######=_]:256 | ||
=== salgado-lunch is now known as salgado | ||
nigelb | Hi, I just filed bug 789222, which I introduced with my "fixes" | 18:25 |
_mup_ | Bug #789222: Sprints and specification subscribers are really not alphabetically sorted <Launchpad itself:New> < https://launchpad.net/bugs/789222 > | 18:25 |
nigelb | should I be separating the sprints and specification into separate branches and bugs or together is fine? | 18:25 |
nigelb | I know the fix for it and I'm working on it. | 18:25 |
jml | nigelb: if the branch gets too complex to think about or review, then you'll know you should have split it. | 18:29 |
jml | nigelb: but probably it's ok to do them together. | 18:29 |
nigelb | jml: Its basically just a small change of one lines each, unless you insist on writing new test cases to catch that. | 18:29 |
=== matsubara-lunch is now known as matsubara | ||
jml | nigelb: well, if you introduced a bug with your fixes, it shows that we don't have enough tests for this area | 18:30 |
jml | nigelb: so, yes I will insist :) | 18:30 |
nigelb | jml: heh :D | 18:34 |
nigelb | I knew you'd insist :D | 18:34 |
nigelb | jml: I don't know if I want to touch the doctests for the specifications. | 18:34 |
jml | nigelb: give it a try at least. | 18:35 |
nigelb | I'm tempted to just write new unit tests. | 18:36 |
nigelb | Wait, that's a trap. I'll end up writing a whole bunch of unit tests. I take that back :p | 18:36 |
jml | nigelb: you'll need some kind of test. do which ever is easier for you. | 18:38 |
nigelb | jml: :) | 18:38 |
nigelb | Sorry for this sort of mess I caused :) | 18:38 |
jml | np. | 18:40 |
nigelb | jml: When is the sprint in Dublin? | 18:42 |
nigelb | I guess the pie on the face is less likely now :( | 18:43 |
jml | nigelb: June 27th: 1 month | 18:43 |
jml | nigelb: yes, quite unlikely. | 18:43 |
jml | nigelb: but still possible. | 18:43 |
nigelb | heh | 18:44 |
* jml is off | 18:46 | |
jml | g'night all | 18:46 |
jml | see you in a bit over a week's time. | 18:46 |
nigelb | ouch, I messed up postgres :( | 18:48 |
nigelb | apparently, at some point I accidentally uninstalled it | 18:48 |
nigelb | I ran rocketful-setup again, but that didn't get the schema on there | 18:48 |
nigelb | how do I fix that? | 18:49 |
nigelb | nvm, I think I fixed it. | 18:50 |
nigelb | No I didn't, sigh. | 19:06 |
=== Ursinha is now known as Ursinha-afk | ||
=== Ursinha-afk is now known as Ursinha | ||
=== Ursinha is now known as Ursinha-afk | ||
=== Ursinha-afk is now known as Ursinha | ||
LPCIBot | Project windmill-db-devel build #332: STILL FAILING in 1 hr 8 min: https://lpci.wedontsleep.org/job/windmill-db-devel/332/ | 19:50 |
flacoste | anyone knows how to make a source package branch the official one? | 19:55 |
LPCIBot | Project windmill-devel build #147: STILL FAILING in 1 hr 9 min: https://lpci.wedontsleep.org/job/windmill-devel/147/ | 20:02 |
nigelb | bac: I'm picking that task up. Just that I broke my local dev set up and trying to figure out if I have to reinstall the whole thing. | 20:17 |
flacoste | bug 347770 | 20:18 |
_mup_ | Bug #347770: UI for making a branch an official package branch <lp-code> <package-branches> <ui> <Launchpad itself:Triaged> < https://launchpad.net/bugs/347770 > | 20:18 |
bac | nigelb: great to hear, except for the borked machine | 20:18 |
nigelb | Note to self: reinstalling rabbitmq was a bad idea. | 20:19 |
flacoste | james_w: is there an existing tool that uses the API to set official package branches? (is it done as part of package-importer?) or should I write my own (i want to set official package branches on another distribution) | 20:19 |
james_w | flacoste, there's set_official.py in lp:udd I think | 20:19 |
flacoste | james_w: i'll have a look | 20:31 |
=== almaisan-away is now known as al-maisan | ||
=== al-maisan is now known as almaisan-away | ||
=== bac changed the topic of #launchpad-dev to: https://dev.launchpad.net/ | On call reviewer: - | Critical bugs:209 - 0:[######=_]:256 | ||
LPCIBot | Project windmill-db-devel build #333: STILL FAILING in 1 hr 7 min: https://lpci.wedontsleep.org/job/windmill-db-devel/333/ | 21:09 |
poolie | has anyone seen this error from ec2: | 21:15 |
poolie | AttributeError: 'Entry' object has no attribute 'queue_status' | 21:15 |
poolie | what a silly error too | 21:15 |
abentley | poolie: it sounds like ec2 was expecting a merge proposal but got something else. | 21:37 |
poolie | yes | 21:39 |
poolie | i gave it a branch | 21:40 |
poolie | perhaps i'll shave that restfulclient yak | 21:40 |
=== Ursinha is now known as Ursinha-afk | ||
=== Ursinha-afk is now known as Ursinha | ||
LPCIBot | Project windmill-devel build #148: STILL FAILING in 46 min: https://lpci.wedontsleep.org/job/windmill-devel/148/ | 22:17 |
=== Ursinha is now known as Ursinha-afk | ||
=== Ursinha-afk is now known as Ursinha | ||
nigelb | anyone around to review a branch? | 22:25 |
nigelb | poolie: You around? | 22:26 |
nigelb | I'm headed to bed. If someone can review https://code.launchpad.net/~nigelbabu/launchpad/789222-sort-fix/+merge/62739 that'd be awesome :) | 22:27 |
=== Ursinha is now known as Ursinha-afk | ||
poolie | hi nigelb | 22:40 |
=== matsubara is now known as matsubara-afk | ||
poolie | replied | 22:57 |
LPCIBot | Project windmill-db-devel build #334: STILL FAILING in 43 min: https://lpci.wedontsleep.org/job/windmill-db-devel/334/ | 23:00 |
lifeless | *stretch* | 23:06 |
poolie | hi there | 23:06 |
lifeless | flacoste: there is an API call I believe. No web UI atm. | 23:06 |
flacoste | lifeless: yep | 23:09 |
lifeless | I see the futher discussion now ;) | 23:09 |
poolie | lifeless: if you're in lp mode, can you tell me if there's a better way to write https://code.launchpad.net/~nigelbabu/launchpad/789222-sort-fix/+merge/62739 | 23:23 |
poolie | tx | 23:27 |
lifeless | no probs | 23:28 |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!