[08:01] <mandel> morning all!
[08:25] <JamesTai1> Good morning all! :)
[09:44] <mandel> dobey, I found the issue, the problems is that QNetwork.setApplicationProxy does not work and we have to set the proxy on the NetworkAccessManager, which will mean that the code won't work in older versions..
[09:44] <mandel> dobey, lets talk about the best approach whenever you are around
[11:21] <gatox_mac> good morning
[11:23] <gatox> good morning here too
[11:32] <mandel> gatox, morning to both of you
[11:32] <gatox> mandel, jeje thx
[11:32] <gatox> mandel, i'm in Q now.... and it's really fast
[11:32] <gatox> successful upgrade
[11:33] <mandel> gatox, yet proxy support for u1 is broken due to an update of qt
[11:33] <mandel> :P
[11:33] <gatox> ouch
[11:35] <mandel> gatox, might be a big deal if we have to be compatible with older versions
[11:35] <mandel> gatox, they fixed a bug that broke a workaround hehe
[11:36] <gatox> mandel, jejeje well... we might have something as we do for the multiplatform code..... based on the qt version..... is a PITA but it will work
[11:36] <mandel> gatox, which will be a fuuuuu from my point of view ;)
[11:36] <gatox> yap
[11:37]  * gatox is really happy about how Q is working in his machine :D
[12:28] <mandel> fuuuuuu http://paste.ubuntu.com/1257851/
[12:43] <ralsina> good morning!
[12:43] <gatox> ralsina, hi!
[12:44] <gatox> ralsina, 12.10 is working like a charm...... just to let you know
[12:44] <ralsina> gatox: awesome!
[12:44] <mandel> ralsina, morning!
[12:44] <ralsina> hello gatox, mandel
[12:45] <mandel> ralsina, I hate unity => http://paste.ubuntu.com/1257851/
[12:45] <mandel> ralsina, also, QNetwork.setApplicationProxy() is not working in the new qt as it did in the old one, it is easy to fix, but.. which qt version are we using in old ubuntu distros?
[12:46] <ralsina> mandel: 4.8.something
[12:46] <ralsina> mandel: let me check
[12:46] <mandel> ralsina, will it get updated, do we have to behave in a diff manner according to the qt version?
[12:46] <ralsina> mandel: I am guessing it will get updated in 12.04.1
[12:46] <ralsina> mandel: but who knows. In any case, we should still try to support the old way if it's not a huge mess
[12:46] <ralsina> mandel: 4.8.1
[12:46] <mandel> ralsina, ok, I'll talk with dobey on what to do, is as simple as not using the application proxy and set the proxy for the networkaccessmanager
[12:47] <mandel> ralsina, we can always have an ugly if statement
[12:47] <ralsina> mandel: you are missing a file in a build dep, obviously
[12:47] <ralsina> mandel: exactly
[12:47] <ralsina> mandel: if it's just *one* if, I don't mind
[12:48] <ralsina> much
[12:49] <mandel> ralsina, should not be.. but might have to check for version and os.. :(
[12:50] <mandel> ralsina, so is not as nice
[12:50] <gatox> mandel, do you were involved in the code for SyncDaemonTool signals handling?
[12:50] <mandel> gatox, nop, I might know something but I was about to change the nick to mandel|lunch :P
[12:51] <ralsina> mandel: hmmmm version & os? Really?
[12:51] <gatox> mandel, no problem..... it wasn't to ask you something now...... i'm still trying to figure it out something..... i just wanted to know who to ask if this get more awful :P
[12:51] <mandel> ralsina, we need to check
[12:51] <mandel> ralsina, I have not tested it on windows
[12:52] <mandel> gatox, I think I can give you a hand
[12:52] <mandel> well, I'm off to have lunch
[12:55] <ralsina> mandel|lunch: hopefully, we try it on windows and it's broken in a cross-platform-compatible manner
[12:59] <dobey> mandel|lunch: hrmm, can we just make all the calls all time, so it works on both versions regardless?
[12:59] <dobey> mandel|lunch: is there documentation on why this broke? this seems like a regression in qt, so perhaps we can just push a fix to it?
[13:00] <ralsina> dobey: good idea, should not break anything setting it twice
[13:09] <alecu> hello #ubuntuone!
[13:09] <dobey> hola alecu
[13:11] <facundobatista> Hello, fellow desktoplings! Vengo en paz. And with a MP: https://code.launchpad.net/~facundo/ubuntuone-client/fix-path-retrieval/+merge/127583 (thanks!)
[13:11] <alecu> hey all, I'm taking the morning off to pay another visit to the doctors
[13:11]  * alecu aims his raygun to facundobatista
[13:12] <facundobatista> alecu, :)
[13:16] <ralsina> facundobatista: ya casi terminé el review de esa
[13:18] <facundobatista> ralsina, maravilloso, gracias
[13:20] <ralsina> facundobatista: +1
[13:20] <facundobatista> ralsina, :D
[13:20] <facundobatista> ralsina, thanks
[13:26] <ralsina> I am rebooting to windows to help test some u1db stuff, will be back in a bit
[13:41] <ralsina> Damned, I had forgotten how painful it is to boot windows if you have not done it in a while
[13:43] <ralsina> gatox: since you just upgraded to 12.10, did your u1 icon in launcher go away?
[13:43] <gatox> ralsina, i didn't have it there anyway..... so i don't know
[13:44] <ralsina> gatox: could you create a fresh accout and see if it's there?
[13:44] <gatox> ack
[13:44] <gatox> brrb
[13:44] <ralsina> gatox: just switch to the guest account :-)
[13:45] <gatox> ralsina, the guest session is enough?
[13:45] <gatox> yes..... it's there
[13:56] <mandel> ralsina, dobey well, is not that easy, we used the setApplicationProxy over the NetworManager.setProxy because in previous versions of qt there was a bug in it (setProxy)
[13:56] <mandel> ralsina, dobey you could not set the proxy with the correct auth (after the first requests which has no auth) because it would be cached in the nam
[13:57] <mandel> we would need to test if setting both is the correct approach, yet i'm 100% sure that if you set it in the nam the tests will pass in Q
[13:59] <ralsina> gatox: can you doube-check that it's the control panel and not the music store? Just in case :-)
[13:59] <gatox> ralsina, i have both
[14:00] <dobey> ralsina: i have seen it go away on upgrade though
[14:01] <ralsina> dobey: right, that is what I got reported. It seems to go away for accounts that already existed?
[14:02] <dobey> ralsina: it goes away if you upgrade while logged in, i guess
[14:02] <ralsina> dobey: makes a little sense
[14:02] <ralsina> dobey: any idea who we should ping about it?
[14:03] <dobey> ralsina: not sure
[14:03] <dobey> ralsina: i guess dx probably, as it might be a bug in bamf
[14:04] <ralsina> dobey: I am doing other stuff right now  and in windows to boot, could you report the bug?
[14:05] <dobey> going to test upgrade on other laptop first
[14:05] <ralsina> dobey: awesome
[14:12] <dobey> i hope upgrading doesn't break the world on that machine though. (intel gma500)
[14:22] <dobey> hrmm, i think maybe the issue is that ubuntuone-installer gets removed at the beginning of the upgrade, and and new control panel isn't isntalled until much later (which could be an hour apart or something), and so as far as unity is concerned, the thing was in fact removed :-/
[14:23] <dobey> but it would only in fact affect users who run the upgrade while logged in as their user
[14:23] <dobey> so you know, everyone.
[14:25] <dobey> and the "base-files" just failed to install for me. whee :-/
[14:27] <gatox> dobey, i can try to upgrade my other laptop if you need
[14:29] <dobey> well it's obvious what happened
[14:29] <dobey> i am just not sure it's possible to fix it
[14:33] <ralsina> dobey: well, then we have to tell DX I suppose and see if they figure it out
[14:41] <ralsina> dobey: I am asking in ubuntu-desktop let's see what happens
[14:44] <dobey> i can't even find where that list of launcher items is even stored, any more
[14:55] <dobey> gatox: did you get to look at those control panel tests failing?
[14:57] <gatox_mac> dobey, hop… i'm kind of stuck with the u1-cp issue in mac yet
[14:57] <ralsina> going back to linux, see you all in a bit or two
[14:58] <dobey> gatox_mac: can we postpone that to fix the tests issues?
[14:58] <gatox> dobey, fine by me if ralsina agrees
[14:59] <dobey> ralsina: ^^
[15:00] <mandel> me
[15:00] <gatox> me
[15:03] <briancurtin> ah crap, typing now
[15:04] <mmcc> me
[15:05] <briancurtin> me
[15:07] <dobey> me
[15:08] <gatox> mandel, go
[15:08] <mandel> DONE: FOund out what changed in qt and broke proxy. QNetwork.setApplicationProxy does not work as it used to. We need to set the NetworkAccessManager proxy instead. Merge u1 payment preview with tunk, everything went down to hell
[15:08] <mandel> TODO: Try to fix the merge problems which stops my code fomr compiling :*( Propose fix for proxy.
[15:08] <mandel> BLOCKED: no
[15:08] <mandel> gatox, please
[15:08] <gatox> DONE:
[15:08] <gatox> Fight a lot with twisted and u1-cp signals for the public files list.
[15:08] <gatox> TODO:
[15:08] <gatox> Figure it out why the last part of the signal is not reaching the share_links module, although we are getting the correct data from u1-client. Fix u1-cp tests
[15:08] <gatox> BLOCKED:
[15:08] <gatox> Trying to understand some part of the twisted signaling implementation.
[15:08] <gatox> mmcc, go
[15:09] <mmcc> DONE: tests for cmd-q catch, daemon crash debugging
[15:09] <mmcc> TODO: merge cmd-q, daemon work
[15:09] <mmcc> BLOCK: no
[15:09] <mmcc> NEXT: briancurtin
[15:09] <briancurtin> DONE: well U1CP starts up now, usually, in most cases, somehow.
[15:09] <briancurtin> TODO: figure out what's still in the way of it operating, possibly the recent changes to finding the binaries
[15:09] <briancurtin> NEXT: dobey
[15:09] <dobey> DONE: releases, uploads
[15:09] <dobey> TODO: finish 4.0.0 releases/uploads, poke py3 twisted guys about packaging
[15:09] <dobey> BLCK: New Qt broke SSO authenticated proxy support. CP tests breakage.
[15:09] <dobey> ralsina: go
[15:14] <ralsina> grmbl, sorry, ubuntu update broke network :-(
[15:14] <gatox> ralsina, yep..... here too..... but it get connected eventually (specially if i'm close to the router.. magic :P)
[15:15] <mandel> dobey, I'll propose a fix for that block asap, let me finish first with some work on unity
[15:15] <mandel> dobey, I'll try to test it in P and Q
[15:15] <gatox> ralsina, so..... about what dobey says......
[15:15] <gatox> ralsina, <dobey> gatox_mac: can we postpone that to fix the tests issues?
[15:15] <ralsina> DONE: calls, helped u1db test on windows, some reviews, helped around a bit TODO: try to figure out that upgrade problem, help around some more, etc. BLOCKED: no
[15:15] <ralsina> gatox: how stumped are you on the mac u1cp stuff?
[15:18] <gatox> ralsina, the problem seems that we are getting all the info from u1-client..... i'm printing that and i see it..... but in some place in the endless callbacks to return the signal from u1-client, one of the callback is not getting called and the method which receive the data and process the info in share_links is never being called...... and i'm not really familiar with that part of the signal and wait_for_signals stuff in u1-client and i do
[15:18] <gatox> n't quite understand yet what is happening with a deferred that set a callback to i-dont-know-what
[15:19] <ralsina> gatox: ok, you may get some help from mandel for that tomorrow morning
[15:19] <ralsina> gatox: so, switch to the tests now, and then you go back to the shares tab tomorrow early
[15:19] <gatox> ralsina, i was about to execute the same thing on windows.... that uses the same calls...... and try to follow everything backwards with the stack..... to see what funcions should be called on the response
[15:19] <mandel> hm.. ralsina may or will? :-)
[15:20] <ralsina> mandel: I am not the "thou shall" kind of manager, so add a "?" there where appropiate ;-)
[15:20] <mandel> hahahahaha
[15:20] <mandel> ralsina, I suspected that :)
[15:20] <ralsina> mandel: I really hope you will though
[15:21] <mandel> will do my best
[15:21] <gatox> ralsina, ok..... i'll move to the tests.... then try the windows option to see if i can track which should be the proper path of calls...... and if i start to have suicidal thoughts..... i will ask mandel :P jeje
[15:22] <mandel> gatox, for how to kill yourself? I would go for alcohol and unprotected sex
[15:22] <gatox> jejejeje
[15:24] <mmcc> hey guys, I need to do some emergency babysitting now, sorry. I'll peek in occasionally but might be gone for an hour
[15:24] <mmcc> (my wife is sick this morning)
[15:24] <ralsina> mmcc: sure, go ahead
[15:25] <briancurtin> gatox: if you are going to be testing things in windows from source, make sure you already have creds otherwise you wont be able to start U1CP
[15:27] <gatox> briancurtin, ack, thx...... and i have creds
[15:28] <dobey> ok, i need to get some lunch. bbiab
[15:32]  * gatox lunch....... brb
[16:02] <ralsina> lunch for me too
[16:27] <briancurtin> lunch + quick_errands = brb
[16:28] <mandel> EOD for manuel
[16:28] <mandel> aka me
[16:32] <gatox> mandel, bye
[16:35] <dobey> so just need to get sso and control-panel released and uploaded, but grrr qt
[16:53] <gatox> dobey, where are the tests failing? llinux?
[16:54] <dobey> gatox: yes, in taramc
[16:54] <dobey> gatox: https://code.launchpad.net/~dobey/ubuntuone-control-panel/update-4-0/+merge/127559
[16:54] <gatox> dobey, ahhhhhh it was client...... i was confuse
[17:15] <dobey> mandel: you had a branch?
[17:18] <gatox> dobey, do you know if there is a bug for the failing test or it should be?
[17:18] <dobey> gatox: i haven't filed one yet
[17:18] <gatox> dobey, ok.... i'll do it and propose the branch now
[17:19] <dobey> gatox: ok, thanks. what was the problem there?
[17:20] <gatox> dobey, some part of the test wasn't updated with one of the latest changes adding the separator, which counts as another item
[17:21] <dobey> gatox: a branch isn't needed i guess
[17:21] <dobey> if that's the issue
[17:21] <dobey> uh, wait, what does that have to do with control-panel?
[17:21] <gatox> dobey, do you want to add the patch in your branch
[17:21] <gatox> dobey, no, i'm talking about the failing tests in u1-client
[17:22] <dobey> what failing tests in u1-client?
[17:22] <gatox> dobey, there was a test failing in u1-client.... i thought you were talking about that one
[17:22] <dobey> gatox: no i'm talking about control-panel
[17:23] <gatox> dobey, the one in u1-cp is failing only in mac..... at least for me
[17:23] <dobey> gatox: a lot of tests are failing with regards to the shares tab
[17:23] <gatox> i'll double check right now
[17:23] <dobey> gatox: look at the failure message here: https://code.launchpad.net/~dobey/ubuntuone-control-panel/update-4-0/+merge/127559
[17:24] <gatox> dobey, yes.... i saw that..... but i get all green on linux...... and that only on mac
[17:25] <gatox> that's why i was working on mac
[17:25] <dobey> gatox: on precise, or quantal?
[17:26] <gatox> dobey, now i'm on quantal..... but yesterday i was in precise and i had u1-cp tests green..... that's when i notice the tests failing on mac and not on linux
[17:26] <gatox> and i said the part about being consistent....
[17:26] <gatox> because for some reason that is not working on mac
[17:27] <dobey> gatox: they pass for me on precise too, but these failures are on quantal in tarmac
[17:28] <gatox> dobey, weird....
[17:28] <gatox> gatox@utopia:~$ lsb_release -a
[17:28] <gatox> No LSB modules are available.
[17:28] <gatox> Distributor ID:	Ubuntu
[17:28] <gatox> Description:	Ubuntu quantal (development branch)
[17:28] <gatox> Release:	12.10
[17:28] <gatox> Codename:	quantal
[17:29]  * briancurtin back
[17:31] <gatox> dobey, if you can...... this fix the failing test on u1-client: https://code.launchpad.net/~diegosarmentero/ubuntuone-client/ubuntuone-client-fix-tests/+merge/127836
[17:31] <gatox> dobey, now i'll go back to mac..... there i'll be able to fix those broken tests..... plus that tab not working there
[17:34] <dobey> gatox: ok; you are getting those same errors on mac?
[17:34] <gatox> dobey, yes..... only there
[17:35] <dobey> hrmm
[17:41] <chaselivingston> mmcc: ping
[17:41] <mmcc> just got back. what's up chaselivingston ?
[17:42] <chaselivingston> mmcc: just created this http://bazaar.launchpad.net/~chaselivingston/+junk/scripts/view/head:/mac-logs.sh
[17:42] <chaselivingston> what's the best way to distribute that for people to use relatively easily
[17:43] <mmcc> you can make a double-clickable command file that opens in the Terminal. letme look and see how
[17:43] <chaselivingston> ok cool, that would be helpful
[17:44] <mmcc> also, if you could add /Library/Logs/DiagnosticReports/com.ubuntu.* to that zip that'd be good too :)
[17:44] <mmcc> that's where crash reports for the daemon are saved
[17:45] <chaselivingston> can I add that to the same line somehow?
[17:46] <mmcc> yeah, if you just add it to the end it should work
[17:46] <chaselivingston> ok, i'll give that a shot
[17:46] <mmcc> ok, so if you just make that .sh file executable then people can double-click on it. I thought you had to use the .command suffix, but the help says you don't
[17:47] <chaselivingston> mmcc: so how do i make it executable
[17:47] <mmcc> chmod +x mac-logs.sh
[17:47] <chaselivingston> ok cool
[17:48] <mmcc> btw, you might not have any crash reports in /Library/Logs/DiagnosticReports for the daemon (actually I'd like tos ee them if you do)
[17:48] <chaselivingston> that file path you sent for the daemon logs isn't working, not sure how to grab individual files, although i do see them in there
[17:50] <chaselivingston> and running chmod +x mac-logs.sh doesn't seem to do anything...
[17:50] <mmcc> hrm
[17:50] <mmcc> so, 'ls -l /Library/Logs/DiagnosticReports/com.ubuntu.* ' shows files ?
[17:50] <chaselivingston> yes
[17:51] <mmcc> chmod is quiet if it worked, btw. check ls -l mac-logs.sh to see if there's an 'x' in the permissions string
[17:51] <mmcc> like this: -rwxr-xr-x   1 mmccrack  staff   8.7K Aug 29 13:36 setup.py (the permissions are at the beginning)
[17:51] <chaselivingston> yes, there is
[17:51] <mmcc> ok, so it's executable. try double-clicking it
[17:51] <chaselivingston> it just opens in xcode
[17:52] <mmcc> er, ugh
[17:52] <chaselivingston> (or dashcode, maybe)
[17:52] <mmcc> what happens if you rename it mac-logs.command
[17:52] <mmcc> and doubleclick that
[17:52] <chaselivingston> one sec...
[17:53] <chaselivingston> that works
[17:54] <chaselivingston> mmcc: now i just need to figure out how to grab those other crash reports
[17:56] <dobey> wtf, there are 7 of the not so great orange u1 windows icon on my panel now, while running the tests on quantal
[17:56] <chaselivingston> mmcc: i can get the entire DiagnosticReports directory, but not those individual files
[17:57] <mmcc> chaselivingston: what command are you using, verbatim? This just worked for me:  zip -r ~/Desktop/logs.zip ~/Library/Caches/ubuntuone/log/ /Library/Logs/DiagnosticReports/com.ubuntu.one.fsevents*
[17:57] <dobey> thankfully they've all gone away
[17:58] <dobey> hrmm
[17:58] <chaselivingston> mmcc: hm, worked that time w/ what you sent
[17:58] <chaselivingston> don't think i had fsevents on there previously
[17:58] <dobey> whee, and pylint is leaking like crazy
[17:59] <chaselivingston> mmcc: just pushed the latest revision
[17:59] <dobey> 400M RES so far
[17:59] <mmcc> chaselivingston: ok…  com.ubuntu.one* will match all the files that com.ubuntu.one.fsevents* does, but as long as it works
[17:59] <dobey> i'm surprised pylint doesn't get OOMed on tarmac
[18:00] <chaselivingston> mmcc: yeah, well there we go. we'll probably add an faq about that once the beta goes public
[18:00] <chaselivingston> that way people can easily attach logs to bug reports
[18:01] <mmcc> chaselivingston: yeah, helpful. thanks!
[18:01] <chaselivingston> mmcc: np
[18:01] <mmcc> chaselivingston: btw, you might also want to know about the shortcut "Control-Option-Command-Shift-Period". it runs 'sysdiagnose' -  https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/sysdiagnose.1.html
[18:02] <chaselivingston> mmcc: interesting, i'll take a look, thanks
[18:02] <mmcc> that's kind of a last resort, but if you suspect something's weird with their system, that gives you all kinds of info, including apps installed, OS version, running apps, etc etc
[18:02] <chaselivingston> ok great
[18:03] <mmcc> kind of intrusive though, so not usually something I'd ask for. just worth knowing about
[18:04] <chaselivingston> mmcc: right
[18:13] <dobey> weird, the tests passed for me on quantal :(
[18:26] <chaselivingston> mmcc: fyi, http://people.canonical.com/~chaselivingston/scripts/mac-logs.dmg
[18:26] <mmcc> chaselivingston: thanks
[18:30] <mmcc> Here's one for a blog post: unicode test path in our control-panel tests was crashing the fsevents daemon!
[18:31] <chaselivingston> mmcc: is there a command to quit terminal after that process has run?
[18:31] <mmcc> chaselivingston: I don't think so. You wouldn't want it to quit if there were other windows open, for instance
[18:31] <ralsina> mmcc: uh?
[18:32] <chaselivingston> mmcc: ok gotcha
[18:32] <ralsina> mmcc: Oh, I get it! AMAZING :-)
[18:32] <mmcc> ralsina: it's great! I was getting a lot of daemon crashes and wondering why no one else was…
[18:32] <ralsina> mmcc: that's becaue you are the only one running the crazy filename tests with the daemon running :-)
[18:33] <mmcc> was also wondering why I got a ton of crashes on monday afternoon and none over the weekend… :) I even left Spotify on over night thinking that might be it
[18:33] <ralsina> mmcc: so yes, that's totally blog-worthy
[18:33] <mmcc> added a bunch of debug dumps and figured it out just now when I started running the tests again. Hooray for having a clue!
[18:47] <mmcc> another funny twist, the 'mdworker' system process that does indexing for spotlight also complains about the path that was crashing our daemon…
[18:50] <gatox> ralsina, could you review this one: https://code.launchpad.net/~diegosarmentero/ubuntuone-client/ubuntuone-client-fix-tests/+merge/127836 ?
[18:50] <ralsina> gatox: por supus
[18:50] <gatox> ralsina, thx
[18:51] <ralsina> mmcc: hey, a corner case! ;-)
[18:56] <mmcc> ralsina: well, this is interesting. it's in test_folders.py where we add '\xe7\xa7' to a file name before opening it and writing to it… I'm not clear on what that's testing, and if it's something that'll actually happen
[18:57] <mmcc> ie, I can just ignore the event if it has an invalid filename, but we shouldn't if that happens in real life
[18:57] <ralsina> mmcc: I *think* we are testing invalid unicode
[18:57] <ralsina> mmcc: which yes, should not happen IRL but does because people have ancient files from dubius zip files and such
[18:58] <mmcc> btw, I recreated that test and crashed the daemon again, but it did create a file - it shows in the finder as %XE7%XA7
[18:59] <mmcc> the place where it causes problems in the daemon, it's expecting a utf-8 filepath from the fsevents device and it can't translate it
[19:00] <mmcc> hmm
[19:00] <dobey> mmcc: what test is this?
[19:00] <ralsina> mmcc: yes, that's a "invali utf8 filename"
[19:00] <ralsina> mmcc: so it's a real bug in the daemon
[19:00] <mmcc> dobey: class CalculateSizeWithInvalidPath(CalculateSizeTestCase): in test_folders.py in controlpanel
[19:00] <ralsina> mmcc: since it seems fsevents sometimes passes things that are *not* utf-8 paths
[19:01] <dobey> mmcc: what's the full string for the path that's failing?
[19:01] <mmcc> yeah, it's a real bug for sure.
[19:02] <mmcc> dobey: if you open("\xe7\xa7", 'wb') from the python console, it'll poke this . but it's not failing the test, it's causing a failure in the daemon
[19:02] <mmcc> the tests are fine :)
[19:03] <karni> Hey guys, does our Windows client need to replace some file system unsafe characters when downloading files form U1? (Say, someone has FAT or VFAT partition)
[19:03] <ralsina> karni: yes
[19:03] <karni> Or do we assume any sensible person has NTFS?
[19:03] <ralsina> karni: lots and lots of them
[19:03] <karni> ralsina: oh, tell me more!
[19:03] <ralsina> karni: on windows, even on NTFS there are invalid characters
[19:04] <ralsina> karni: that includes * ? : and others
[19:04] <karni> ralsina: http://en.wikipedia.org/wiki/Filename says / and null only o_O
[19:04] <ralsina> karni: mandel is the expert in the fiel
[19:04] <ralsina> d
[19:04] <karni> mandel: still around?
[19:04] <ralsina> karni: invalid for the filesystem and invalid for the OS are different things :-)
[19:05] <karni> ah "forbids the use of characters in range 1-31 (0x01-0x1F) and characters " * : < > ? \ / | unless the name is flagged as being in the Posix namespace. "
[19:05] <ralsina> karni: for example, you can't create a file called AUX.SVG IIRC
[19:05] <karni> right
[19:05] <karni> I've read that up, yes.
[19:05] <karni> ralsina: Maybe you'll be able to answer the following question for me:
[19:06] <ralsina> karni: I will try!
[19:06] <karni> if we download a file, say we replace those unsafe characters with _. we may cache the resource path it came from, but what if the user reinstalls U1. do we upload those files back to U1 with underscores?
[19:06] <ralsina> karni: yes because we have no way to know
[19:06] <karni> so that foo* and (reuploaded foo=)foo_ will appear along in U1?
[19:06] <karni> fuck..
[19:07] <karni> ralsina: That answers my question, thank you!
[19:07] <ralsina> karni: if we tried to be that smart, then we fail in the opposite way
[19:07] <karni> ralsina: That's what I thought :(
[19:07] <dobey> mmcc: was that the full path? i'm just asking because the \xe7\xa7 seems a bit familiar
[19:07] <ralsina> karni: basically, we are losing information, we can't just create it when it moves the other way
[19:07] <karni> ralsina: Exactly. As simple (and sad) as that.
[19:07] <ralsina> karni: same thing about upper/lower case :-(
[19:08] <karni> ralsina: Yeah :/ what do we do with that on VAT? Say, user as foo and FOO in U1. What syncs down?
[19:08] <mmcc> dobey, no the full path was /my-path/to/_trial_temp/not-existing-dir/\xe7\xa7
[19:08] <ralsina> karni: sorry for foul language, but basically, shit happens
[19:08] <karni> ralsina: omg :<
[19:08] <ralsina> karni: we got a report of foo vs Foo today
[19:08] <karni> FAT, go away!
[19:08] <ralsina> karni: the user ended with both on ubuntu
[19:08] <ralsina> and only one on windows
[19:08] <karni> ralsina: Right...
[19:09] <ralsina> I am scaredd to ask what happened to the files inside the folder
[19:09] <karni> ralsina: Did he/she say what they expected (knowing the limitation) ?
[19:09] <ralsina> karni: AFAIK "magic"
[19:09] <karni> besides having foo and FOO appear on Windows (which they can't)
[19:09] <karni> :/
[19:09] <ralsina> karni: I mentioned the problem with case sensitivity, no response yet
[19:09] <karni> ralsina: I feel like you feel my pain. Thank you for sharing that, it's easier for me that way ;<
[19:10] <dobey> ah ok
[19:10] <ralsina> karni: np
[19:10] <ralsina> karni: buy mandel a beer in the sprint, he has stories
[19:10] <karni> ralsina: btw. if foo and FOO are in U1, and, say, foo gets downloaded, then FOO gets downloaded (overwriting locally foo), foo (having FOO content) will overwrite foo when reuploaded to U1 o_O?!
[19:10] <karni> ralsina: totally
[19:11] <ralsina> karni: probably
[19:11] <karni> oh shit
[19:11] <ralsina> karni: or maybe it will get even more confused and delete everything. Dunno.
[19:11] <ralsina> karni: wanna try? ;-)
[19:11] <karni> ralsina: hahaha
[19:11] <karni> ralsina: I.. I don't think I have windows :|
[19:12] <karni> ralsina: Anyways, thank you for confirming these issues.
[19:12] <ralsina> karni: chicken! ;-)
[19:12] <karni> LOL :D
[19:12] <ralsina> karni: as a punishment https://answers.launchpad.net/ubuntu/+source/ubuntuone-client/+question/210270
[19:13] <ralsina> you need to rename it "u1-files-which-doesn't-sync-your-changes-to-the-server.apk"
[19:14] <karni> ralsina: f!@# I WILL!
[19:14] <karni> chaselivingston: ↑ Shall I write a FAQ for you to add to our FAQ's page?
[19:14] <karni> ralsina: FWIW there's a community person working with me to get things spinning around real sync in U1F.
[19:14] <chaselivingston> karni: yeah, you could do that, not a bad idea
[19:15] <dobey> ah windows
[19:15] <karni> ralsina: But GOD we never EVER said it does SYNC.
[19:15] <karni> I should review Android market description, this smells.
[19:15] <dobey> karni: but it's files! they should obviously sync!
[19:16] <karni> dobey: it's an expectation from desktop U1, yes
[19:16] <karni> dobey: FWIW I wanted to implement it long ago. There are just priorities I have to follow.
[19:16] <dobey> karni: does dropbox on android automatically push changes back to the server too? or box.net? or any of the others?
[19:17] <dobey> karni: sorry if you couldn't detect the sarcasm in my voice over text. clearly some information was lost. ;)
[19:17] <karni> dobey: only if you open that file for edition from within the app itself, which I found plain stupid (read, limiting)
[19:17] <karni> dobey: :D
[19:17] <chaselivingston> dobey, karni; would be pretty cool if we were the first to implement syncing like this well
[19:17] <karni> dobey: I never wanted to deliver sync solution to U1F that is half baked. I would hate that.
[19:18] <karni> chaselivingston: We have some work done already, we're in good direction.
[19:18] <dobey> karni: yes, i agree
[19:18] <chaselivingston> karni: good to know
[19:18] <karni> if a file appears or is changed, in the background, not even touching U1F, U1F should still detect it.
[19:18] <dobey> but i also don't use android :)
[19:18] <karni> Anyways, gotta talk to Chad about (V)FAT.
[19:18] <karni> dobey: hehe
[19:23] <mmcc> So I have a problem - if I can't represent a file path in utf-8 then I can't really send it to syncdaemon in JSON…
[19:24] <dobey> mmcc: right; but you can log/ignore it
[19:25] <mmcc> dobey: which means that the path won't get synced. How does syncdaemon handle invalid paths in its scan code? maybe I can send a fake dropped event
[19:27] <ralsina> mmcc: yes you can, json can encoe arbitrary bytes
[19:28] <mmcc> ralsina: well, it'd take a bunch of reworking of the json writing code in this library we're using…
[19:28] <mmcc> it just blindly writes everything out as utf8
[19:28] <dobey> mmcc: we don't sync them afaik
[19:28] <ralsina> mmcc: I take that back, json can't
[19:28] <ralsina> sheesh
[19:29] <ralsina> everything breaks
[19:29] <ralsina> mmcc: I suppose we could just ignore all events regarding invalid filenames
[19:29] <ralsina> mmcc: they are, by definition, a broken corner case
[19:29] <mmcc> ralsina: I think that's the way to go for now, yes
[19:30] <ralsina> in the future we could base64-encode the bytes paths (ugh)
[19:30] <mmcc> btw, dropbox silently ignores a file with invalid filenames...
[19:30] <mmcc> er, with an invalid name
[19:30] <ralsina> yes, you are not able to create those except by writing a program
[19:31] <ralsina> (or unzipping ancient media)
[19:31] <dobey> i say just log invalid filenames, and ignore them
[19:31] <dobey> if it's not utf-8, it's not acceptable
[19:31] <mmcc> sounds good to me
[19:32] <ralsina> dobey: we do support them on linux, IIRC
[19:32] <ralsina> dobey: since we don't need to push them through IPC
[19:34] <dobey> 2012-10-03 15:34:24,101 - ubuntuone.SyncDaemon.InteractionInterfaces - DEBUG - handle_FS_INVALID_NAME: args (<ubuntuone.syncdaemon.interaction_interfaces.SyncdaemonEventListener object at 0x9ffc7cc>,), kwargs {'dirname': u'/home/dobey/Ubuntu One', 'filename': '\xe7\xa7'}.
[19:35] <dobey> no we don't :)
[19:36] <ralsina> haha
[19:36] <ralsina> ok, so we just need to fail a bit earlier here
[19:36] <dobey> huh
[19:36] <dobey> one.ubuntu.com requires 2-factor now? :(
[19:36] <ralsina> dobey: just for us
[19:37] <ralsina> dobey: because they love us and want us to feel safe
[19:37] <ralsina> dobey: and no, we can't make it go away
[19:37] <ralsina> not without quitting canonical, at least
[19:45] <briancurtin> oooh a python crash
[20:00] <dobey> oi, this weather is tiring
[20:08] <karni> mandel: karni chat you with, tomorrow | Joda style
[20:10] <mmcc> ralsina: I have a qt question. my test from yesterday was failing because my code was subtly broken :) So I'm trying to get the test going again, and I want to know if I can find out, for a given qaction, what is connected to its triggered signal ?
[20:10] <ralsina> mmcc: hmmm no
[20:11] <ralsina> mmcc: not in an obvious and reasonable manner, AFAIK
[20:11] <ralsina> mmcc: gatox? second opinion? ^
[20:11] <ralsina> mmcc: to test those things we usually use fake QActions
[20:11] <mmcc> oh wait, I think that's a dumb question. I need to know if it's connected to a particular function, which I can patch :\
[20:12] <ralsina> or trigger it and see if it calls it
[20:12] <gatox> mmcc, ralsina, not in this qt version....... it seems is going to be possible in the next one
[20:12] <ralsina> gatox: I am getting the vibe of "of course Qt 5 has ponies for everyone!"
[20:12] <mmcc> oh, no, that's no good either. this test will be pointless. I'm just going to leave it off
[20:12] <gatox> ralsina, yes :'D jeje
[20:13] <dobey> sigh
[20:14] <mmcc> the test went from "check if the action I want is in the main menubar" to "check if the action my function returns has the right signal set", which is not the point
[20:19] <ralsina> mmcc: right, those are very different things
[20:19] <ralsina> mmcc: I would do both tests, maybe
[20:19] <ralsina> mmcc: one to see if the action is there, and one to see it's connected correctly
[20:21] <mmcc> ralsina: I don't think I *can* test that it's in the main menu. I can't see how to get a ref to the main menubar - I can *create* a new main menu by creating one with no parent, but I don't know how to get a ref to the currently displayed main menubar
[20:21] <ralsina> mmcc: did you try the findChildren() I mentioned yesterday?
[20:21] <ralsina> mmcc: window.menubar() gives it to you IIRC :-)
[20:22] <mmcc> well, to make things more fun, when it does its magic that moves the action into the app menu from wherever you have it, it appears to create a new QAction and does not copy the objectName
[20:22] <ralsina> make that menuBar
[20:22] <ralsina> oh, screw it then
[20:22] <mmcc> and window.menubar() shouldn't work, because we've explicitly created one with no parent window, so it's still around after the window goes away...
[20:22] <mmcc> I know, right/
[20:22] <mmcc> ?
[20:23] <ralsina> mmcc: you would have to keep a reference to it somewhere
[20:23] <ralsina> mmcc: maybe in a member of the tray icon's object
[20:23] <ralsina> mmcc: but yikes
[20:24] <mmcc> ralsina: yeah, that was the problem I was having yesterday. I'm just keeping it alive in main
[20:24] <ralsina> yes but that means you can't reach it from the tests, right?
[20:25] <mmcc> well, you can, because I have a function that's returning the new parentless menubar, and I'm just saving its return value in main
[20:25] <ralsina> ok
[20:25] <mmcc> the mp is here : https://code.launchpad.net/~mikemc/ubuntuone-control-panel/catch-quit/+merge/127605
[20:25] <mmcc> just pushed that update
[20:26] <ralsina> mmcc: ok, waiting for the diff to catchup
[20:27] <gatox> eod here....... see you tomorrow people........ time to rest for gatox
[20:27] <mmcc> ralsina - cool. I'm open to suggestions for moving that code around, btw.
[20:27] <ralsina> bye gatox
[20:27] <gatox> ralsina, bye
[20:27] <mmcc> bye gatox, see you tomorrow
[20:28] <ralsina> mmcc: we can do tests for install_platform_event_handlers itself
[20:28] <ralsina> mmcc: so I would do a test that checks that the menubar has an action in it with the right shortcut
[20:28] <ralsina> mmcc: and one that checks it triggers the right thing
[20:28] <mmcc> ralsina: those are the tests I was just complaining about…
[20:29] <ralsina> mmcc: so, for the first, maybe findChildren could work, since you have the original menubar
[20:29] <ralsina> mmcc: and for the second, I would patch QAction to be a fake action
[20:29] <mmcc> oh, I see, just test the returned menubar, and trust that it is actually in the right place
[20:29] <ralsina> mmcc: exactly, trust magic to do its work
[20:29] <ralsina> so it's not perfect coverage but it's *some* coverage
[20:30] <ralsina> also, you could run start and then generate a cmd-q and see what happens ;-)
[20:30] <mmcc> ok, going back through my undo history…
[20:30] <ralsina> via QApplication.event()
[20:32] <mmcc> so, menubar.findChild(QtGui.QAction, "objname") should find a QAction that I called .setObjectName("objname") on, right?
[20:33] <ralsina> mmcc: yesss
[20:34]  * ralsina has never used that
[20:34] <mmcc> nope
[20:35] <ralsina> mmcc: you could just do menubar.the_action = QAction(foo) and find it that way
[20:35] <ralsina> mmcc: although that quickly approaches the "useless test" line
[20:36] <mmcc> it's really doing something weird behind my back here. I am setting a name on both the qaction and the menu that I add to the menubar, then returning the menubar.
[20:36] <ralsina> mmcc: do you set the parent of the action to be the menubar?
[20:36] <ralsina> mmcc: just in case
[20:36] <mmcc> interesting :)
[20:36] <ralsina> I would expect it to reparent, but maybe it doesn't
[20:36] <mmcc> I have been setting the parent of the action to be the app
[20:37] <ralsina> haha!
[20:37] <mmcc> but I don't have a good reason for that…
[20:37] <ralsina> mmcc: welcome to impedance mismatch city, population Qt and garbage collectors ;-)
[20:38] <mmcc> whee
[20:39] <ralsina> you can either try to find the qaction via the app, or check app.actions() or make the menubar the parent
[20:40] <ralsina> one or more of the three should work*
[20:40] <ralsina> (* maybe none works)
[20:44] <mmcc> making the menubar the parent worked.
[20:45] <mmcc> so I can test the function but I can't test the magic.
[20:45] <joshuahoover> ralsina: any ideas on this error from a q user? http://paste.ubuntu.com/1258871/
[20:45] <mmcc> joshuahoover: I recognize that, it was fixed recently
[20:45] <joshuahoover> mmcc: oh yeah?
[20:46] <mmcc> joshuahoover: well, probably. I'm looking again
[20:47] <joshuahoover> mmcc: i noticed we just landed a new u1-client package so it's possible it's fixed there
[20:47] <dobey> joshuahoover: it's fixed. but installing gir1.2-syncmenu-0.1 will also resolve it
[20:47] <ralsina> joshuahoover: looking
[20:48] <ralsina> joshuahoover: yes, fixed in today's package
[20:48] <joshuahoover> dobey, ralsina, mmcc: thanks guys :)
[20:55] <mmcc> ok ralsina, I pushed a test that checks the triggered function on the qaction. I don't think I can test the key shortcut, as that's part of the magic. note that I don't set a key shortcut on the action myself
[20:55] <ralsina> 1st EOD for me. Will be back for a quick check tonight, if anyone needs reviews just say it here :-)
[20:55] <ralsina> mmcc: looking
[20:56] <ralsina> had not noticed that the shortcut was magical :-/
[20:56] <mmcc> yep
[20:56] <ralsina> I am tempted to say 'why' but will not
[20:57] <ralsina> mmcc: just to make me happy, what happens if you create the menubar and put no action there?
[20:57] <mmcc> you mean, what happens to the test?
[20:57] <ralsina> mmcc: IRL, does it work?
[20:57] <mmcc> or what happens to the app when you run it?
[20:57] <ralsina> because I don't see how this action gets triggered IRL, so I am thinking qt is adding a second one
[20:57] <mmcc> if I create a menubar but don't add anything to it? let's see…
[20:58] <mmcc> yes, I think Qt always creates its own set of QActions for the 'required' menu items, and if you have versions it 'moves' them by just copying their connections…
[20:58] <mmcc> but I'm not 100% sure
[20:59] <ralsina> mmcc: because the problem here may be something else and you are fixing it by keeping the menubar reference
[21:00] <mmcc> not sure I understand, what problem am I fixing?
[21:00] <ralsina> mmcc: the cmd-q
[21:01] <ralsina> "the cmd-q not closing things correctly" problem
[21:01] <mmcc> So, at the bottom of all this, there's an actual NSApplication running, which loads a menu from an actual .nib file, and those are things I understand - there will always be a menu with a quit menu item because it's there in the nib that the NSApplication class loads… The issue is what Qt decides to hook up to the signals it gets from that item
[21:02] <ralsina> right
[21:03] <ralsina> I don't see how it goes from "this action says quit" to "let's connect the action's callback to this item in the menu"
[21:03] <ralsina> so I am guessing that maybe the problem is something else and it's being avoided as a side effect of creating our own QMenuBar and/or keeping a reference to it
[21:03] <ralsina> in which case we would not need to add the QAction to it
[21:04] <ralsina> and less code == less things that can break
[21:04] <mmcc> well, the docs say that it's doing a merging step on the menus in the outermost menu bar, it matches 'quit' or 'exit' and "moves" that action to the default menu placement for os x
[21:04] <mmcc> http://doc-snapshot.qt-project.org/4.8/qmenubar.html#qmenubar-on-mac-os-x
[21:04] <ralsina> ok then, that's how it works :-)
[21:05] <ralsina> so, good, I'll do the review and have it ready before your AM
[21:06] <mmcc> sounds good, thanks :)
[21:07]  * mmcc was looking at qt code to see where exactly it does that
[21:07] <ralsina> also explains why we could never find stuff with findChild before, because it's moved
[21:07] <dobey> what happened to gatox?
[21:07] <ralsina> dobey: he EODed
[21:08] <dobey> right, i figured as much now; but last i saw of him was "i'll go back to poking on mac where those tests fail for me"
[21:09] <ralsina> dobey: he also had a headache
[21:10] <dobey> anyway, i don't know why those tests failed in tarmac on quantal; i tried on my laptop and updated the tarmac instance and tried again, and they worked, so tried the branch merging again with tarmac, and it merged fine :-/
[21:10] <ralsina> dobey: they always worked on precise, too
[21:11] <dobey> i do wonder what happened with mandel though. he said he was about to propose a branch to fix the SSO tests, and then went EOD
[21:11] <ralsina> dobey: probably ran out of time
[21:11] <dobey> ralsina: right, but precise doesn't have the new qt, which seems to be an annoying point
[21:11] <ralsina> no branches pushed for sso from mandel today
[21:12] <dobey> though i don't know what version of qt we're using on mac
[21:12] <dobey> yeah, i looked at that already :)
[21:12] <ralsina> dobey: 4.8.1 last I checked but mmcc knows better
[21:12] <mmcc> yes, 4.8.1
[21:13] <dobey> ah ok
[21:13] <dobey> then definitely not qt changes causing those failures
[21:13] <ralsina> same as in precise, too. Maybe a patch in the Q package?
[21:13] <mmcc> well, that's what I'm using. there's nothing in the buildout that enforces the qt version… but that's only on macos
[21:14] <mmcc> I'm not sure I follow the context here, but fyi it's possible that gatox has a new Qt on his mac…
[21:14] <dobey> that could be too
[21:15] <mmcc> since he just installed stuff this week
[21:15] <ralsina> yes, I have old stuff
[21:15] <ralsina> we could lock 4.8.1 so we stay in the same version as Precise, though
[21:15] <ralsina> les moving parts
[21:15] <dobey> ralsina: could be a patch in the q version, but i doubt it. could be an issue in 4.8.3; or could be another issue
[21:15] <ralsina> fewer
[21:15] <dobey> i suspect another issue for the cp tests at this point
[21:16] <dobey> the SSO proxy tests issue is definitely qt
[21:16] <ralsina> dobey: agreed
[21:17] <ralsina> now, really taking a break
[21:17] <ralsina> see you later/tomorrow
[21:17] <dobey> cheers ralsina
[21:19] <mmcc> I'm just going to leave this here:     [newItem setTag:long(static_cast<QAction *>(action->action))];
[21:21] <mmcc> that's Qt abusing an integer ID field in an NSMenuItem object to store a pointer to a QAction
[21:38] <dobey> ah well, have a good evening all
[22:08] <briancurtin> well, there goes another day of excellent fun in debugging