[00:11:30] Coren! [00:11:34] can you take a look at https://bugzilla.wikimedia.org/49046 [00:33:33] Coren, well can I at least connect to it? [00:34:27] Krenair: become your tool, you'll be able to connect to it from there. [01:10:35] Coren, honestly so far I've just been messing around with the database replicas, I haven't got around to creating a tool yet :p [01:49:48] Krenair: Do like many do, create a dev tool for playing around with. :-) [01:50:00] That's basically what I'm doing [02:21:09] Coren: Take a look at p50380g50577__wmf_wiki_info on tools-db :) [02:39:17] Haven't figured out how some of the 'family' values, is_meta, is_sensitive, is_multilang, or root_category are supposed to be generated yet, and the private wikis are missing some data of course [02:39:34] Also need to work out how to make it readable by all (assuming it's not already) [02:48:04] MariaDB [p50380g50577__wmf_wiki_info]> GRANT SELECT ON p50380g50577__wmf_wiki_info.* TO '%'@'%'; [02:48:04] ERROR 1044 (42000): Access denied for user 'p50380g50577'@'%' to database 'p50380g50577__wmf_wiki_info' [02:48:06] huh [02:55:38] O.o That should have worked. [02:58:36] Ah. That be my fault; the privileges on the local DB does not have with grant option. Poop. [03:01:35] Krenair: Try again? [03:02:27] MariaDB [p50380g50577__wmf_wiki_info]> GRANT SELECT ON p50380g50577__wmf_wiki_info.* TO '%'@'%'; [03:02:27] ERROR 1410 (42000): You are not allowed to create a user with GRANT [03:03:38] Silly mysql. [03:03:57] It needs to already know a user '%'@'%'. :-) [03:04:15] It does now. [03:05:42] Looks like it worked that time [03:06:38] Can you see the data? [03:26:45] How do I get a page from the db? [03:33:24] a930913: "Get a page"? [03:37:10] Coren: As in the current revision I guess. [03:49:32] a930913: Well, you can't get the text from the DB, you'd use the API for that -- and since you're on the API anyways getting the latest revision is the default. [04:28:34] ohai legoktm [04:28:41] omg [04:28:43] i literally [04:28:46] just got home [04:29:24] omg [04:29:25] i literally [04:29:25] just [04:29:26] woke up [04:29:27] :P [04:29:33] nice saturday night? [04:30:56] yes :D [04:31:07] trying to find a movie on netflix to watch [04:31:10] :) [04:31:10] ah [04:31:18] FDR: American Badass? [04:31:19] :P [04:31:52] did you get started on editcountitis at all, legoktm? [04:31:55] or shall I just start? [04:32:09] go for it [04:32:12] i didnt get a chance [04:32:15] sweet [05:20:42] @notify anomie [05:20:42] I'll let you know when I see anomie around here [07:13:14] YuviPanda: whats Werkzeug? it got installed when i installed flask [07:13:25] it's the underlying wsgi wrapper [07:13:26] > The Python WSGI Utility Library [07:13:28] o.O [07:13:34] or rather [07:13:35] implementation [07:13:42] wsgi is sortof like a protocol (like CGI) [07:13:47] werkzeug wraps around it [07:13:50] a little [07:13:56] flask just sits on top of it [07:14:02] werkzeug adds error reporting [07:14:04] debugging [07:14:07] and all that stuff [07:14:13] think of it like cgitb [07:14:46] legoktm: it also I think can be extended as 'middleware' if necessary [07:15:54] so you can do things like auth, gzip, etc without needing to touch the app [07:16:00] ah, ok [07:50:49] YuviPanda: its not working :( [07:50:57] where is it? [07:51:02] which tool? [07:51:22] hold on a sec, pastebinning [07:52:38] data.py https://dpaste.de/HP7OH/raw/ [07:52:58] api.py https://dpaste.de/EJScj/raw/ [07:53:11] and test url is http://tools.wmflabs.org/legobot/cgi-bin/av/api.py/aiv/ [07:54:51] legoktm: what error are you getting? [07:55:11] http://tools.wmflabs.org/legobot/cgi-bin/av/api.py/aiv/ : "A server error occurred. Please contact the administrator." [07:55:41] for some reason i'm giggling at 'import gf ' :P [07:55:44] okay getting serious now [07:55:45] * YuviPanda reads [07:56:15] legoktm: https://dpaste.de/EJScj/raw/ has two hashbangs [07:56:28] errrr [07:56:31] also what is gf? [07:56:34] is it importable? [07:56:40] yeah [07:56:43] give me a sec [07:56:59] can I haz access to the repo? [07:57:02] even temperoarily? [07:57:13] removed the second hash bang, no difference [07:57:30] um, its in "legobot" which has my bot password so i cant give that out [07:57:37] i can create another tool? [07:57:44] right [07:57:45] well [07:57:49] i can just copy paste this [07:57:50] so [07:57:50] moment [07:59:03] legoktm: added you to tool editcountitis [07:59:06] copy there? [08:00:07] legoktm: just copy the entire folder, including virtualenv, there? [08:02:21] ok sure, give me a sec [08:06:55] YuviPanda: its in cgi-bin/av/ [08:08:01] ok checking it out [08:15:37] legoktm: hmm, the cgi script isn't being executed at all [08:15:48] o.O why not? [08:15:58] i set it to +x [08:16:40] legoktm: even if i set it to using /usr/bin/python [08:16:46] legoktm: see ~/cgi-bin/avi/av/ [08:16:50] (moved it to a new virtualenv) [08:17:24] ok [08:17:59] legoktm: hmm, they're not beigne executed. I removed the .pyc files, hit it again, no execution [08:18:09] this is failing much before it reaches wsgi [08:18:53] petan: can you grep apache error logs to see if there's anything? [08:19:14] do we need to set up the rewrite rules or name it .cgi like the example at http://flask.pocoo.org/docs/deploying/cgi/#creating-a-cgi-file ? [08:19:55] legoktm: i put a file write based log on the first line of api.py, before it even tries to import wsgiref [08:20:00] hm [08:20:03] so this should run as a normal python cgi file [08:20:04] not happening [08:21:41] legoktm: oh i'm an idiot [08:21:41] nevermind [08:21:53] didn't set 'w' mode on file [08:21:56] o.O [08:21:58] cgi runs [08:22:08] need to figure out the issue with wsgi [08:22:08] debugging [08:28:10] legoktm: ah, so now it is 404 [08:28:13] found a chunk of the problem [08:28:20] legoktm: it was missing memcached and simplejson packages [08:28:24] oh [08:28:25] :P [08:28:39] package is python-memcached btw [08:28:49] yeah, installed it [08:28:53] and renamed simplejson to json [08:28:59] so now i'm getting 404 [08:29:02] which is... more appropritae [08:31:17] legoktm: tada http://tools.wmflabs.org/editcountitis/cgi-bin/avi/av/api.py [08:31:18] :) [08:31:29] yayay :D [08:32:06] legoktm: :) [08:32:10] legoktm: you need to 'return' not 'print' [08:32:15] ohhhhhhhhhhhhhhhhh [08:32:20] legoktm: however, there's some weird rewrite rule for http://tools.wmflabs.org/editcountitis/cgi-bin/avi/av/api.py [08:32:25] that's redirecting it to an internal url [08:32:49] ok but wait, why doesnt http://tools.wmflabs.org/editcountitis/cgi-bin/avi/av/api.py/aiv/ work? [08:33:26] good question :P [08:33:29] i'm trying to find out now [08:34:17] legoktm: http://tools.wmflabs.org/editcountitis/cgi-bin/avi/av/api.py/aivdd/ works [08:34:20] also it seems app.debug=True doesnt work [08:34:27] hm [08:34:31] legoktm: so that seems to be an error being thrown up by mc_get [08:34:37] ok [08:34:57] legoktm: you should cd to the virtualenv directory and use 'source bin/active' [08:35:49] >>> import gf [08:35:50] >>> gf.mc_get('aiv') [08:35:50] [] [08:35:52] works fine? [08:38:00] hmm [08:38:38] YuviPanda sure [08:38:49] petan: also can you install 'ack-grep' package? :D [08:38:59] ye [08:39:09] thank you :) [08:39:13] everywhere? [08:39:16] yes [08:39:25] it's small, and very useful [08:39:38] !log tools petrb: installing ack-grep everywhere per yuvipanda and irc [08:39:40] Logged the message, Master [08:39:45] thank you [08:40:45] it was already everywhere [08:41:18] YuviPanda what you want to grep in log [08:41:51] hmm, we're looking for python tracebacks from cgi-bin from the tools project editcountitis [08:42:35] legoktm: http://flask.pocoo.org/docs/quickstart/#debug-mode i think we might not be able to use debugging mode on cgi-bin, I suppose it is a forking environment... [08:42:46] :/ [08:43:53] legoktm: nevermind :) [08:43:57] legoktm: http://tools.wmflabs.org/editcountitis/cgi-bin/avi/av/api.py/aiv/ tracebacks ahoy :) [08:44:01] legoktm: unicode issue :P [08:44:13] legoktm: werkzeug's debug mode works [08:44:14] ahhhhhhhhh [08:44:22] ok thats easy [08:44:23] petan: nevermind, we found it! :) [08:44:24] YuviPanda http:/pastebin.com/S0LxBw83 [08:44:27] omg [08:44:36] * http://pastebin.com/S0LxBw83 [08:45:06] :) [08:45:07] same error [08:45:15] http://tools.wmflabs.org/editcountitis/cgi-bin/avi/av/api.py/aiv/ :DDDDDD [08:45:48] legoktm: :D [08:46:12] dammit I wanted to play with the debugger more but now there are no errors :( [08:46:20] legoktm: is this in a git repository somewhere? [08:46:27] also welcome to WSGI :) [08:46:30] and flask :P [08:46:37] also do you really have to name your methods with one variables? :P [08:46:42] and call them 'thing'? [08:46:44] heheheheh [08:46:58] i was being lazy [08:47:10] tch tch :P [08:48:37] im working on a WP:AIV parser and so the next step is to have a JSON api that will be used [08:48:50] NIICEE! [08:48:52] :) [08:49:01] petan: memcached being used ^ :) [08:50:45] so i have an IRC bot updating that memcached key :) [08:51:07] ... [08:51:12] why?! [08:51:48] is this all in a git repo? [08:53:59] well the bot does a lot more. https://github.com/legoktm/adminbots and ##legoktm-bots [08:54:15] nice :) [08:56:19] live running feed of AIV, UAA, RfPP and then tracks the users/articles listed, provides info about previous blocks, edit counts, etc [08:56:48] niiice! :) [08:56:51] all running on toolslabs? [08:56:53] soon im going to add in a CSD module that tracks when articles get tagged [08:56:54] was in on ts before? [08:56:55] yup [08:56:59] no, i wrote it last week [08:58:57] nice [08:58:59] :) [08:59:34] it's like how I write tools for fun but you write tools that people actually use :P [09:00:19] heh, well right now i've just been using it [09:00:34] i've blocked over 150 users in the past 2 days [09:00:48] wah [09:00:51] ips? [09:02:16] and users too [09:52:40] legoktm: i think the tracebacks are interactive [09:52:46] you can execute arbitrary code [09:52:48] i think [09:52:49] o.O? [09:52:53] thats not a good idea. [09:52:54] that's why they should be off [09:52:56] yes [09:52:59] they have a REPL [09:53:02] we can turn it off [09:53:08] we should.... [09:53:13] by passing False for the second parameter [09:53:15] in api,py [09:53:17] api.py [09:53:20] ok [09:53:23] however it is still a cool feature :D [09:53:29] yeah [09:53:43] nothing's as cool as unauthenticated remote execution of untrusted code :P [09:53:48] im gonna sleep in a bit, but tmrw ill try and transition it to its own tool [09:53:53] lolol [09:54:09] legoktm: i'll turn off debug execution [09:54:14] should leave tracebacks intact [09:54:14] thanks [09:54:35] done [09:54:36] :) [09:54:45] yes tracebacks, no code exec [09:54:50] legoktm: good night :) [09:55:02] legoktm: are you on Facebook / Twitter? [09:55:13] twitter.com/legoktm [09:55:41] :) [09:55:43] thanks [09:58:09] :D [10:14:05] YuviPanda I update the memcache I made, which libraries are you using for it? [10:14:17] I will try to create some that works with my version as well [10:14:18] currently it is legoktm's tool [10:14:22] python-memcached [10:14:25] ok [10:17:44] YuviPanda this version support stat command and it restrict flush_all to user [10:17:53] nice! [10:17:56] if anyone connect to shared mc and do flush_all they will remove all keys [10:18:07] you really should add one of the test suites but [10:18:10] ah [10:18:15] we should comment that out too? :P [10:18:17] what test suite you mean? [10:18:18] how? :P [10:18:18] !cyberpower678 [10:18:32] !Cyberpower678 [10:18:33] addshore, how do you rollback? with the rollback button? :D [10:18:35] https://code.google.com/p/memcached/wiki/TestSuites [10:18:36] "{ [10:18:47] aha [10:18:49] ok [10:18:52] I will [10:20:14] Warning: There is 1 user waiting for shell: AleXXw (waiting 0 minutes) [10:21:24] petan: :) [10:26:56] YuviPanda https://github.com/benapetr/memcached [10:27:04] mmm [10:30:49] https://github.com/benapetr/memcached#descriptive-errors [10:30:56] :P [10:32:37] YuviPanda I dont know python :/ [10:32:47] it is too hard for me to update the library but modification is very easy [10:32:53] learn! [10:32:55] :D [10:33:01] it is just needed to create new function Authenticate [10:33:16] hm [10:33:26] which only send 1 stanza to server [10:33:28] depends. [10:33:37] does it use persistant connections? [10:33:39] Warning: There is 1 user waiting for shell: AleXXw (waiting 13 minutes) [10:33:42] once per set? [10:33:45] if it was in language I know it would be matter of 20 minutes for me to implement it [10:33:51] YuviPanda yes I know... [10:33:54] https://github.com/linsomniac/python-memcached/blob/master/memcache.py [10:33:59] thats the file that needs to be modified [10:34:20] if it doesnt it means the stanza needs to be added everywhere after connection [10:34:21] maybe https://github.com/linsomniac/python-memcached/blob/master/memcache.py#L1110 ? [10:34:42] legoktm how are you using it? [10:34:47] brb food [10:34:50] it connect only when you need to access it [10:34:55] or it connect once and then you access it [10:35:06] connect only when you need access i think [10:35:10] mhm [10:35:16] i never explicitly call a .connect() or anything [10:35:20] i just create the object [10:35:26] then call a get() or set() on a key [10:35:29] that would be easy anyway [10:35:34] the library knows if it is connected or not [10:35:43] you would just create a constructor with name and password [10:35:54] and in every connect it would automatically login [10:36:17] you just need to send to server these bytes [10:36:30] authenticate user:psw\r\n [10:36:34] user is username [10:36:37] psw is password [10:37:06] ok [10:37:09] shouldnt be that hard [10:37:21] I think it is matter of few minutes for someone who knows the language [10:37:35] yeah [10:47:08] Warning: There is 1 user waiting for shell: AleXXw (waiting 27 minutes) [10:54:04] YuviPanda I made a cool stuff :D [10:54:10] I started my memcache in mixed mode [10:54:21] that means it allows authentication but it doesnt require it [10:54:30] users who dont login share the same realm [10:54:41] so it should be compatible with regular memcache now [10:55:05] legoktm ^ [10:55:15] can you try some python script with this memcache server? [11:00:32] Warning: There is 1 user waiting for shell: AleXXw (waiting 40 minutes) [11:01:44] sure [11:01:50] whats the hostname/port? [11:01:58] tools-mc 11212 [11:03:54] Setting a key didn't work [11:04:03] what it did? [11:04:03] It also took much longer for it to return a failed error code [11:04:08] hmm [11:04:13] i>>> import memcache [11:04:13] >>> mc=memcache.Client(['tools-mc:11212']) [11:04:13] >>> mc.set('test', '1234') [11:04:13] 0 [11:04:40] I would need to see the traffic hold on [11:06:33] ok try now [11:06:40] I am watching the traffic [11:07:13] but LOL [11:07:15] just did it [11:07:15] it worked [11:07:22] set test 0 0 4 [11:07:23] 1234 [11:07:26] response: [11:07:27] STORED [11:07:34] wtf [11:07:39] but [11:07:41] >>> mc.get('test') [11:07:41] >>> [11:07:49] it sent literally same response as regular mc o.O [11:07:58] waaaaa [11:08:14] now it didnt send any data [11:08:39] no data whatsoever :/ [11:08:50] idk ://///// [11:09:00] are you sure you are trying get on same mc server? [11:09:06] because it didnt try to ask it [11:09:49] yes, it is [11:10:05] but it didnt even sent 1 byte to this port [11:10:18] did you just see something? [11:10:20] yes [11:10:22] now I did [11:10:24] get test [11:10:32] ok, but i didnt get any data back [11:10:34] response was VALUE test 0 4 [11:10:36] 1234 [11:10:40] hm [11:10:45] just as it should be o.O [11:13:53] Warning: There is 1 user waiting for shell: AleXXw (waiting 53 minutes) [11:15:47] back [11:15:53] legoktm: i think we should document the wsgi setup [11:16:17] petan: do you know where would be a nice place to document 'How to Run your WSGI scripts with VirtualEnv on Labs'? [11:16:28] wikitech [11:16:37] yeah but where on wikitech/ [11:16:37] ? [11:16:45] no idea XD [11:16:50] Nova_Resource:something/something? [11:17:07] User:YuviPanda/wsgi python something [11:17:14] what userspace [11:17:15] noooo [11:17:37] legoktm: petan also I was reading through some of the threads on toolserve-l [11:17:41] that.... looks painfully dramatic :( [11:17:49] link [11:17:58] oh stuff like http://lists.wikimedia.org/pipermail/toolserver-l/2013-April/005978.html [11:18:14] and this thread http://lists.wikimedia.org/pipermail/toolserver-l/2013-May/006147.html [11:19:22] oh yeah YuviPanda, out of curiosity, how hard do you think it would be to set up a SVN mirror of a git repo? [11:19:23] i read this [11:19:25] long time ago [11:19:39] legoktm: so... The answer to that is... sadly... [11:19:40] not very hard [11:19:58] assuming readonly mirror [11:20:03] Yes, read only. [11:20:10] legoktm: so, *easiest* way.... is https://github.com/blog/626-announcing-svn-support [11:20:21] provided that it is already on github [11:20:23] if not [11:20:38] (or https://github.com/blog/966-improved-subversion-client-support) [11:20:42] OH SRSRLY [11:20:46] YA SRSLY [11:20:55] (it wasn't an april fool's prank, it is for realz) [11:21:01] the best pranks are real... [11:21:28] wow great. [11:21:29] as for doing it in a non-github way... [11:21:33] http://stackoverflow.com/questions/661018/pushing-an-existing-git-repository-to-svn [11:21:33] No thats fine [11:21:35] but it's not as easy [11:21:39] legoktm: but why svn? [11:21:46] We're moving the pywikibot svn repo to gerrit [11:21:50] ah [11:21:56] so you want to mirror that back to svn? [11:22:08] Yeah for people who will complain [11:22:10] so you can pick up the github replica of the gerrit repo and use that for svn? [11:22:15] yup! [11:22:16] :) [11:22:21] :D [11:22:26] so now you literally have to do no work :D [11:22:27] yay [11:23:23] https://www.mediawiki.org/wiki/Talk:Git/Conversion/pywikipedia :D [11:23:57] I should perhaps post to wikitech-l about how 'all wikimedia repositories are now available in SVN' [11:24:22] lololol [11:24:42] :D [11:24:52] not now, need to do it tomorrow for max impact [11:25:03] tomorrow? [11:25:07] Monday [11:25:08] I mean [11:25:12] it's 5pm on sunday ;D [11:25:19] why will it be a bigger impact? [11:25:26] oh lol [11:25:28] :P [11:27:17] Warning: There is 1 user waiting for shell: AleXXw (waiting 67 minutes) [11:28:52] * YuviPanda subscribes to labs-l [11:29:25] about time lol [11:30:22] well I wasn't really doing much with Labs before tools started picking up [11:38:13] petan: filed https://bugzilla.wikimedia.org/show_bug.cgi?id=49058 :) [11:38:40] what it mean [11:38:45] Support WSGI [11:38:54] how should we support it? [11:38:54] WSGI is a standard for running Python Scripts as web apps [11:38:57] mod_wsgi [11:38:59] adding more details now [11:39:03] aha [11:40:21] there [11:40:22] more info! [11:40:38] Warning: There is 1 user waiting for shell: AleXXw (waiting 80 minutes) [11:50:09] legoktm I know it sounds weird but I am getting feeling that the problem is in your library... it just doesnt close the connection properly :/ idk what is going on its so weird [11:50:22] i wouldnt be surprised [11:50:32] except that it works just fine with normal memcached [11:50:43] yes because normal memcached is not closing it properly as well [11:54:02] Warning: There is 1 user waiting for shell: AleXXw (waiting 93 minutes) [12:07:23] Warning: There is 1 user waiting for shell: AleXXw (waiting 107 minutes) [12:20:43] Warning: There is 1 user waiting for shell: AleXXw (waiting 120 minutes) [12:31:10] zz_YuviPanda ping [12:31:19] zz_YuviPanda these test are broken, they dont even compile [12:34:04] Warning: There is 1 user waiting for shell: AleXXw (waiting 134 minutes) [12:47:29] Warning: There is 1 user waiting for shell: AleXXw (waiting 147 minutes) [12:50:22] -bash: /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java: No such file or directory [12:50:22] what does it mean? [12:53:23] Base-w: it means exactly that ;p [13:00:49] Warning: There is 1 user waiting for shell: AleXXw (waiting 160 minutes) [13:14:14] Warning: There is 1 user waiting for shell: AleXXw (waiting 174 minutes) [13:23:59] !rq AleXXw [13:23:59] https://wikitech.wikimedia.org/wiki/Shell_Request/AleXXw?action=edit https://wikitech.wikimedia.org/wiki/User_talk:AleXXw?action=edit§ion=new&preload=Template:ShellGranted https://wikitech.wikimedia.org/wiki/Special:UserRights/AleXXw [13:24:53] petan ..? [13:25:05] That account already had shell? and there is nothing in the rights log..? [13:25:06] hm? [13:25:12] o.O [13:25:17] weird [13:37:43] stupid java idk why i can run one programs and get Could not find the main class in others(( [14:07:37] what command line are you using? [14:14:50] legoktm can u create python script that write and read from memcache and save it to share [14:27:24] Platonides: me? one that build in in winscp [14:27:59] or you mean what i type? [14:28:02] * Base-w noob [16:00:13] @notify legoktm [16:00:13] This user is now online in #wikimedia-dev. I'll let you know when they show some activity (talk, etc.) [16:01:34] anomie can you cron restart of that script for packages? [16:01:53] just cron it as a task :P [16:11:56] petan: sure [16:13:37] petan: Hmm. "Unable to run job: job rejected: Only 16 jobs are allowed per user" is new. [16:15:19] o.O [16:15:24] that is new [16:15:27] lot of new stuff [16:15:31] Coren? [16:31:06] petan: It /is/ new, and still open to tweaking. [16:34:37] hmm, does it queue the job is there are already 16 running? or does it just get lost? [16:36:30] Hi! Could anybody install oursql and wikitools for Bots? [16:41:24] addshore: It's suppose to just not schedule them until there is room; the limit is supposed to be 16 /active/ jobs. [16:41:40] addshore: If it behaves otherwise, it's a bug and needs to be fixed. [16:41:42] sounds good : [16:41:43] :) [16:52:44] Coren: Doesn't seem to work: "for NR in {1..30}; do jsub sleep 1m; done; qstat" [16:53:22] Hrm. How annyoing. [16:53:28] pyfisch@bots-login:~$ cd /data/project [16:53:29] -bash: cd: /data/project: Transport endpoint is not connected [16:53:31] *angry* [16:53:32] can somebody fix it or is nobody theire who can resolve this error? [16:53:50] That works for me, but might be because I have magic gridengine bits. [16:53:52] Pyfisch: if Coren cannot fix it we have a serious issue [16:54:11] Pyfisch: I can look at it, but gluster is not always amenable to persuation. Lemme check. [16:56:04] Coren: The jobs that don't seem to work have no "Your job 201935 ("sleep") has been submitted" line (just the "prog?" debug from jsub). [16:56:31] (which reminds me to push the fixed version) [16:56:34] Using qsub: "Unable to run job: job rejected: Only 16 jobs are allowed per user (current job count: 16)." [16:57:02] With jsub, that message should/would end up in the .err file [16:57:35] Ah, always forget this. Yes, sleep.err has lots of "Unable to run job: " lines. [17:00:27] Pyfisch Betacommand: A kick in the butt seems to have done it. [17:00:34] Coren: http://serverfault.com/questions/184165/how-can-i-set-the-maximum-number-of-running-jobs-per-user-on-sge suggests to set the max stuff with qconf -srqs, the latter is empty on Tools. How did you define it? [17:02:55] Ah, qconf -sconf. [17:03:02] scfc_de: With a global max_u_jobs, which the documentation seemed to have read that it was /runnable/ jobs. Slots would probably be better. [17:03:34] * Coren does that, instead. [17:04:22] Hello all. I wonder if someone might be able to help me - petrb has kindly processed my Tool Labs access request but I still can't access [[Special:NovaProject]] (message is "There were no Nova credentials found for your user account. Please ask a Nova administrator to create credentials for you.") [17:04:57] I can log into Tool Labs by ssh, though. [17:05:04] Tristessa: You need to log out and back on (of Wikitech) [17:05:13] Tristessa: Openstack limitation. [17:05:18] Coren: ah right, thanks :) [17:06:11] Coren: I read the doc in the same way :-). It's pretty confusing that "the number of active (not finished) jobs" should refer to the number of *all* jobs under SGE control. [17:06:32] Coren: thank you, that fixed it [17:06:59] * Tristessa should have thought to try that. *looks embarassed* [17:07:25] Tristessa: Just curious: Did you change preferences on wikitech? [17:07:53] scfc_de: I changed the ssh key in OpenStack, yes [17:08:40] scfc_de: Switeched to a quota, that should work. [17:10:05] Coren: Not yet :-): "cannot run because it exceeds limit "/////" in rule "user_slot_limit/1"" [17:10:59] Tristessa: There are a number of bugs in OpenStack, so it *should* work without logging out and in, but it doesn't :-). So you don't need to look embarassed. [17:12:50] scfc_de: Bleh. Quotas are enforced before queuing? How... uncouth. [17:13:35] scfc_de: thanks! [17:13:59] Coren: Are you sure you don't need an "users {*}"? (Guessing.) [17:14:22] scfc_de: That's the default. Clearly, since it applied to you. [17:14:58] Yep. Hmmm. [17:15:06] BBIAB. [17:15:51] Warning: There is 1 user waiting for shell: Ltrlg (waiting 0 minutes) [17:16:30] (Taking straight from the man page -- and it doesn't work. *Argl*.) [17:16:37] Did you see p50380g50577__wmf_wiki_info on tools-db Coren? [17:16:55] Krenair: Yeah, cool beans. [17:17:45] no idea how I'm going to handle private wikis unless we can figure out how to do this with mediawiki-config [17:18:43] I don't think it's that useful with the private wikis anyways? [17:19:32] HUH? [17:19:36] private wikis? [17:19:54] Probably not [17:19:55] btw whoever wrote the memcache support in mediawiki ..... [17:19:57] it is crap [17:20:09] petan {{sofixit}} ;) [17:20:29] martijnHH I am not going to spend time working on stuff which likely wouldnt even get merged [17:20:31] !b 48626 [17:20:31] https://bugzilla.wikimedia.org/48626 [17:20:33] !b 48625 [17:20:33] https://bugzilla.wikimedia.org/48625 [17:20:39] * YuviPanda looks around [17:20:45] but my php script that are using php5-memcache library works great [17:20:48] We were talking about a DB for those petan [17:20:54] just mediawiki which uses own implementation is broken [17:22:14] Coren: do we still use gluster for anything? [17:22:28] YuviPanda: Not on tools- [17:22:46] YuviPanda: I expect petan will plan a transition for bots- in the short term [17:22:51] :) [17:22:52] nice [17:25:18] YuviPanda can you provide me some python script that uses memcache? [17:25:27] hmm? [17:25:30] want me to write some? [17:25:30] sure [17:25:32] moment [17:25:33] I want to test it [17:25:46] btw mediawiki works with my server quite bad despite it works a bit. php5-memcache library works as charm [17:25:55] i'll write something simple that saves 1-100 and then just reads them back? [17:25:58] unfortunatelly mediawiki doesnt use it [17:26:06] ok [17:26:41] also, did you know that memcache didnt have a commit for years? :P [17:27:01] it is dead... [17:28:35] petan: more like 'so stable it needs no commits'? :P [17:28:44] scfc_de: Aha. [17:28:58] YuviPanda haha [17:29:16] Warning: There is 1 user waiting for shell: Ltrlg (waiting 13 minutes) [17:29:25] !rq Ltrlg [17:29:25] https://wikitech.wikimedia.org/wiki/Shell_Request/Ltrlg?action=edit https://wikitech.wikimedia.org/wiki/User_talk:Ltrlg?action=edit§ion=new&preload=Template:ShellGranted https://wikitech.wikimedia.org/wiki/Special:UserRights/Ltrlg [17:30:11] YuviPanda did you just run something there? :P [17:30:15] I see traffic [17:30:21] yes :P [17:30:23] I am using tcpflow on it [17:30:23] checking [17:30:29] how can I share the script with you? [17:30:37] save it /shared [17:31:13] petan: /shared/memtest.py [17:31:40] scfc_de: *that* should work. [17:31:54] import error no module named memcache [17:32:25] moment [17:32:35] Fun. The trick is to use maxuconf in the scheduler config, and not max_u_conf in the grid config. I *love* Sun software. *blergh* [17:32:44] I will install it [17:32:51] petan: no no [17:32:55] i just setup a virtualenv [17:32:58] on dev? [17:33:20] YuviPanda it told me passed test [17:33:25] yeah :) [17:33:30] petan: on /shared/ [17:33:33] legoktm [17:33:35] petan: you can cd to /shared/memtest [17:33:42] howcome HIS SCRIPT works and YOUR DOESNT [17:33:44] and do 'source bin/activate' [17:33:55] legoktm you suck at programming compared to yuvi XD [17:33:55] petan: am I using the correct port? [17:34:00] lol [17:34:02] :P [17:34:10] 11212? [17:34:16] yes [17:34:21] is your server? [17:34:21] Coren: :-) It does seem to work, even though the jobs in "qw" state say they are "job dropped because of user limitations" which sounds frightening. [17:34:27] otherwise I wouldnt see it [17:34:29] in traffic [17:34:37] I am watching that port only [17:34:38] heh :) [17:34:47] yeah I just flooded it i think :P [17:34:51] no [17:34:55] hmm? [17:34:55] mediawiki flood it far worse [17:34:58] ah [17:34:59] :P [17:35:00] right [17:35:07] * YuviPanda adds food to addfood [17:35:18] YuviPanda I will use it as a benchmark [17:35:45] petan: what port is traditional memcached in? [17:35:55] 11211 [17:36:52] YuviPanda can you change it so that it doesnt send stuff on passed but only on NOT passed and eventually say passed all? [17:36:58] because writing to terminal slow it down [17:36:59] :P [17:37:27] petan: yup [17:37:34] petan: so just made it read the port number from commandline args [17:37:42] time python memtest.py 11211 [17:38:17] Everyone in the tools project should be able to see /data/project/wmf-wiki-info/PyMediaWikiClient/script.py right? [17:39:05] petan: at 10,000 sets, your code is at 15s while memcached is at ~12 [17:39:06] not bad [17:40:16] petan: i'm running for a 100,000 now :P [17:42:14] heh where is code [17:42:19] petan: same place [17:42:30] petan: /shared/memtest/memtest.py [17:42:41] petan: you need to source /shared/memtest/bin/activate before running it [17:42:54] oh [17:42:56] I installed it on -dev [17:42:57] this test would now be bogus [17:43:02] so probably not [17:43:04] why [17:43:09] because it is squaring large numbers [17:43:09] :P [17:43:14] probably went out of native integer range [17:43:31] aha [17:43:37] there that's fixed now [17:43:41] btw my code is using some cpu while original doesnt :/ [17:43:46] meh c [17:43:49] :P [17:43:55] petan: i'm now hitting original with another 100,000 [17:43:55] still beats interpreted languages a lo [17:43:56] t [17:43:59] ok [17:44:07] hahaha [17:44:10] my code wins now [17:44:12] ? [17:44:16] original 15%cpu [17:44:19] my 2% [17:44:21] oh wait [17:44:24] i'm not hitting yours now :P [17:44:27] you stopped sending to my? :D [17:44:27] that's why it is winning :P [17:44:28] lol [17:44:29] XD [17:44:34] want me to send to both? [17:44:37] wait [17:44:43] are you sending anything to minde? :D [17:44:46] nope [17:44:55] or it eats a lot of cpu even idle XD [17:44:57] petan: restart both, i'll send simultaneusly to both? [17:45:19] but wait I have tcp flow on mine [17:45:23] that liekly slow it down [17:45:27] yes [17:45:30] get rid of it! [17:45:42] now it doesnt eat [17:45:44] why can't I run screen? [17:45:51] now it does [17:45:59] dunno? [17:45:59] i'm not hitting yet :P [17:46:01] you cant? [17:46:07] as a tool [17:46:09] i can run as user [17:46:40] should I use BugZilla for requesting libraries to be installed on Bots? [17:46:51] DixonD1 which libraries [17:47:10] I told you yesterday - oursql and wikitools [17:47:28] YuviPanda: Well, for one, your tool doesn't own your terminal. That's the technical reason. [17:47:40] petan: hitting both [17:47:51] petan: You installed them on Tools only, as far as I understand [17:48:02] YuviPanda: The better question is... *suspicious look* why would you /want/ to run screen as your tool? Surely not to detach a session running a tool? [17:48:17] they both sleep [17:48:20] Coren: no, I had forgotten I was a tool :P [17:48:26] Warning: There is 1 user waiting for shell: Kylalak (waiting 0 minutes) [17:48:30] i'm not doing that, Coren [17:48:32] don't worry :) [17:48:44] petan: running again [17:48:49] meh [17:48:54] petan: with 100,000 [17:48:57] my tool is slower :( [17:49:07] YuviPanda: thanks for the food :D [17:49:12] petan: what tool? :O [17:49:16] I mean server [17:49:19] petan: with 10,000 it was only like, 800ms slower [17:49:21] my memcached [17:49:23] petan: how's CPU usage like? [17:49:25] yay [17:49:27] * Coren institutes a rule: programs running on -login not attached to an interactive session will be killed are random intervals with random signals. [17:49:35] 18% vs 14% [17:49:55] Coren can I write a bot for that? [17:49:57] XD [17:50:12] mhmmmm [17:50:13] legoktm [17:51:04] YuviPanda funny part is: how long they spent writing memcached... [17:51:08] I made it in 1 day :P [17:51:12] :D [17:51:25] petan: at 100,000 items, within 5s of each other [17:51:34] mhm [17:52:37] YuviPanda tools.wmflabs.org/mediawiki-mc/w is wiki running this mine memcached [17:52:40] it doesnt work at all XD [17:52:43] ohgodwhy [17:55:19] petan: should i delete the file from shared? [17:55:26] petan: or let it be? [17:55:34] idc I can use it [17:55:35] keep it [17:55:41] ok [17:55:52] btw I dont know why mediawiki doesnt work with it :/ [17:55:57] there is no way to debug it [17:56:04] mediawiki has poor debugging... [17:56:27] according to traffic it sends and retrieve some data in weird order [17:56:35] and mediawiki complain about cookies [17:56:37] :D [17:56:38] I like the eval.php shell [17:56:52] saper is it of any help for mc? [17:56:53] :P [17:57:20] petan: filled two tickets in Bugzilla, 'cause I'm gonna sign in into IRC every day just to ask the same thing. Thanks [17:57:41] petan: yes, at least I get get/set keys [17:57:59] saper ok let me try [17:58:47] how does it work? [17:58:50] I am in eval now [17:58:58] help command throw error XD [17:59:33] figured [17:59:38] saper what is command to get/set [17:59:45] I know it with php5-memcached [17:59:49] but mediawiki doesnt use it [18:01:59] Warning: There is 1 user waiting for shell: Kylalak (waiting 13 minutes) [18:04:57] wtf [18:04:59] it works to me [18:05:11] why it doesnt work in real :/ [18:11:13] * YuviPanda heads off to sleep [18:11:15] night everyone [18:13:47] gn [18:15:28] Warning: There is 1 user waiting for shell: Kylalak (waiting 27 minutes) [18:28:57] Warning: There is 1 user waiting for shell: Kylalak (waiting 40 minutes) [18:42:23] Warning: There is 1 user waiting for shell: Kylalak (waiting 54 minutes) [18:44:22] Hey guys. I heard that you could use https through instance-proxy.wmflabs.org. Is this true? [18:49:51] I'm also interested in getting a single public IP address set up. Can anyone help me out? [18:55:51] Warning: There is 1 user waiting for shell: Kylalak (waiting 67 minutes) [19:09:20] Warning: There is 1 user waiting for shell: Kylalak (waiting 81 minutes) [19:15:22] legoktm ping [19:22:40] Warning: There is 1 user waiting for shell: Kylalak (waiting 94 minutes) [19:36:01] Warning: There is 1 user waiting for shell: Kylalak (waiting 107 minutes) [19:49:22] Warning: There is 1 user waiting for shell: Kylalak (waiting 121 minutes) [21:08:35] hello all! [21:11:25] * Tristessa would just like to say thanks to the roots and devs here for their work on Nova/Tool Labs: she's settled in and life is good here :) [21:13:10] I'm pleased with how well everything works, indeed. [21:25:24] Tristessa: Thanks. We try. :-) [21:26:03] Coren: Any luck with the deleted edits table? [21:26:48] TParis: That's going to take a bit of time. At least a week; clearance of centralauth so we can turn S7 on is higher on the todo list. [21:28:26] petan: Hi [21:29:10] I'll take a look later, have to go afk very soon [21:35:57] TParis, Coren: Umm, there's going to be access to the archive table? [21:36:49] Krenair: There may be, in limited fashion, for people who have the right bits on the right wiki, on a limited basis. [21:37:06] Does TS do that? [21:37:19] It does, and really shouldn't. [21:37:53] I.e.: This is something that, by default, will go away. I am looking into a way to keep it, partially, in some conditions. [21:38:24] Why does WMF allow that..? [21:38:41] Does csteipp know? [21:39:27] Yes, and that is part of the reason why the replication feed is to go away. [21:52:05] Coren: ahhh... so now we know why WMF doesn't like carrying on the feed to WMDE... [21:52:34] (well, amongst various reasons, but.) [21:52:35] Coren, what other private info has TS been allowing access to? [21:52:48] That, and the fact that it's mostly unmaintainable when changing the schemas. [21:54:21] * Tristessa is wondering whether the WMF won't like the privacy implications of her project, though. [21:54:32] I hope they'll like it, rather than think it's a problem. [21:54:35] What is your project? [21:54:54] Well, it's a project I originally started for the SoC challenge last year for realtime editing widgets [21:55:08] Tristessa: I think archive could be hidden on the Toolserver very easily if that was the only thing :-). [21:55:23] scfc_de: indeed :) [21:56:26] The problem isn't so much that there is a view to it that it is transmited at all in the first place before being redacted. [21:56:27] Krenair: basically, it shows a list of other people with an active edit window, and shows realtime changes against the editing text with who made them + nested shadowing of changes made by the active user against sections changed by other editors [21:57:05] Krenair: it also automates talk page messaging with other users editing the article with recent revisions, and uses diff from the php backend to improve the edit conflict handling [21:57:22] collaborative editing? [21:57:55] Krenair: Uhh... *kind of*. It's not, exactly, *fully collaborative* editing in that it stays within the confines of standard WP editing practices. It's a close compromise up to it, though. [21:58:53] I've not shown it yet to anyone from WMF; I hope the reception will be a good one. [21:59:32] Tristessa, you should look into contributing to MediaWiki's edit conflict handling code [22:00:02] Tristessa, I think the most important thing here privacy wise is what server your client-side code contacts to share data [22:00:30] If it's an extension on the wiki it should be fine [22:00:37] Krenair: It's not yet been unleashed on the production wiki, it'll be on Tools [22:01:03] and, I will make sure to put the required privacy boilerplate somewhere user-conspicuous [22:01:15] Uh yeah, that doesn't sound good to me. That could expose the IPs of logged in editors [22:01:31] that's what I am not sure about. [22:02:40] Krenair: Only users who have added the js will be listed, though. [22:03:09] so only opt-in users see other opt-in users' editing activities [22:04:00] the php backend for the ajax doesn't store any persistent user data [22:04:26] Why is this not being done as a MediaWiki extension? [22:04:48] Krenair: heh, good question. To be honest: because I didn't develop it as one! [22:05:14] it'd be trivial to make it a MW extension, though. [22:06:03] I think the back-end should be the wiki's API [22:06:30] instead of hosted in a not-as-trusted environment :) [22:06:52] Maybe it ought to [22:07:06] but I'd like to test the js+php version first to get the prototype design right [22:07:24] there's no other way really of constructing a prototype that can be tested on the live enwp [22:09:04] It is, by the way, my intention to use the feedback from it for improving the EC diff handling, as you say. [22:09:09] (on MW itself, that is.) [22:09:19] great :) [22:09:30] Have you looked into the VisualEditor project btw? [22:09:40] *nods* [22:10:03] I don't know if they plan any sort of collaborative editing features but it'd be nice to see integration with that [22:12:28] Not AFAIK, but yes [22:12:28] I'd like to stress this is not "collaborative editing" in the full sense of the term, again; more "collaborative within the confines of standard WP editing patterns" [22:12:28] e.g. a chat interface provided for talk page messaging, ECs displayed in real time against the text, better EC merge handling, UI to show it [22:12:58] (in other words, "collaborative" in how we used to edit back in 2004, but automated! hahaha) [22:13:59] * Tristessa ran the enwp Mediation Cabal for a while, so it's based partly on two things I noticed that users didn't do: 1) work together on integrating content across revisions in contention, instead revert warring; and 2) discuss via talk pages [22:14:03] Hmm... I think my first edits were in 2008 :) [22:14:27] * Tristessa used to be User:NicholasTurnbull [22:14:50] oh yep, there it is, my first edit was on a page for the village where my school was [22:15:07] actually on the evening of my last day there [22:15:51] I made an account in 2011 or something [22:17:23] * Tristessa smiles [22:17:35] petan, ? [22:19:52] Krenair: I agree, though, the use of the db directly and the addition of DOM elements via js is a hack, and it would be better done via API [22:21:03] Krenair: I guess it's really down to laziness and the fact it was started as something to hack together for last year's SoC project [22:23:09] indeed, it'll get broken with the next schema change that affects revs [22:23:48] how will it be broken? [22:25:07] well, maybe not [22:25:25] I doubt revision is going to change hugely [22:26:59] so long as rev_id, rev_page, rev_user, rev_user_text stay the same [22:27:40] but still. :) [22:27:46] If you put this stuff in a WMF-deployed extension it will get updated if there's a schema change [22:29:27] hm. but under what circumstances will WMF deploy an extension? I doubt, surely, for a minority idea of mine, unless people have given it consensus. [22:31:48] so far I've only tested what i've got on a local MW installation with the current db dumps [22:33:05] Clear support from the community usually, a full code review, and not too many bugs :) [22:33:24] * Tristessa has none of those three. *looks embarassed* [22:33:44] It's not ready yet of course [22:34:18] * Tristessa hasn't even contributed a single line of code to any tool in use, let alone MW itself or any production extensions.... [22:35:13] * Tristessa cries. [22:35:42] * Tristessa composes herself, and simply resolves to actually start doing these things.