#ceph IRC Log


IRC Log for 2011-05-04

Timestamps are in GMT/BST.

[0:08] * Yoric (~David@dau94-10-88-189-211-192.fbx.proxad.net) Quit (Quit: Yoric)
[0:29] * allsystemsarego (~allsystem@ Quit (Quit: Leaving)
[0:32] <Tv> hehe autotest coordination rpc will run on port 0xCEFF
[1:26] * alexxy[home] (~alexxy@ Quit (Remote host closed the connection)
[1:29] * ghaskins_mobile (~ghaskins_@66-189-113-47.dhcp.oxfr.ma.charter.com) has joined #ceph
[1:38] * verwilst (~verwilst@dD576FAAE.access.telenet.be) Quit (Quit: Ex-Chat)
[1:39] * djlee1 (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[1:42] * Tv (~Tv|work@ip-66-33-206-8.dreamhost.com) Quit (Ping timeout: 480 seconds)
[1:44] * djlee (~dlee064@des152.esc.auckland.ac.nz) Quit (Ping timeout: 480 seconds)
[1:44] * djlee (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[1:48] * bchrisman (~Adium@c-98-207-207-62.hsd1.ca.comcast.net) has joined #ceph
[1:49] * djlee1 (~dlee064@des152.esc.auckland.ac.nz) Quit (Ping timeout: 480 seconds)
[1:51] * bchrisman1 (~Adium@c-98-207-207-62.hsd1.ca.comcast.net) has joined #ceph
[1:51] * bchrisman (~Adium@c-98-207-207-62.hsd1.ca.comcast.net) Quit (Read error: Connection reset by peer)
[2:26] * djlee1 (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[2:31] * djlee (~dlee064@des152.esc.auckland.ac.nz) Quit (Ping timeout: 480 seconds)
[2:35] * djlee (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[2:38] * djlee1 (~dlee064@des152.esc.auckland.ac.nz) Quit (Ping timeout: 480 seconds)
[2:56] * ghaskins_mobile (~ghaskins_@66-189-113-47.dhcp.oxfr.ma.charter.com) Quit (Ping timeout: 480 seconds)
[2:56] * ghaskins (~ghaskins@66-189-113-47.dhcp.oxfr.ma.charter.com) Quit (Ping timeout: 480 seconds)
[3:13] * joshd (~joshd@ip-66-33-206-8.dreamhost.com) Quit (Quit: Leaving.)
[3:57] * djlee1 (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[4:02] * djlee (~dlee064@des152.esc.auckland.ac.nz) Quit (Ping timeout: 480 seconds)
[4:16] * djlee (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[4:19] * cephuser1 (~cephuser1@173-24-225-53.client.mchsi.com) has joined #ceph
[4:22] * djlee1 (~dlee064@des152.esc.auckland.ac.nz) Quit (Ping timeout: 480 seconds)
[4:30] * cmccabe (~cmccabe@c-24-23-254-199.hsd1.ca.comcast.net) Quit (Quit: Leaving.)
[4:42] * djlee1 (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[4:46] * djlee (~dlee064@des152.esc.auckland.ac.nz) Quit (Ping timeout: 480 seconds)
[4:47] * djlee (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[4:53] * djlee1 (~dlee064@des152.esc.auckland.ac.nz) Quit (Ping timeout: 480 seconds)
[5:14] * djlee1 (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[5:19] * djlee (~dlee064@des152.esc.auckland.ac.nz) Quit (Ping timeout: 480 seconds)
[5:20] * djlee (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[5:25] * djlee1 (~dlee064@des152.esc.auckland.ac.nz) Quit (Ping timeout: 480 seconds)
[5:43] * djlee1 (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[5:49] * djlee (~dlee064@des152.esc.auckland.ac.nz) Quit (Ping timeout: 480 seconds)
[6:03] * eternaleye_ (~eternaley@ has joined #ceph
[6:07] * lxo (~aoliva@ Quit (Read error: Operation timed out)
[6:07] * lxo (~aoliva@ has joined #ceph
[6:08] * eternaleye (~eternaley@ Quit (Remote host closed the connection)
[6:19] * djlee (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[6:25] * djlee1 (~dlee064@des152.esc.auckland.ac.nz) Quit (Ping timeout: 480 seconds)
[6:27] * ghaskins (~ghaskins@66-189-113-47.dhcp.oxfr.ma.charter.com) has joined #ceph
[6:44] * ghaskins (~ghaskins@66-189-113-47.dhcp.oxfr.ma.charter.com) Quit (Ping timeout: 480 seconds)
[6:58] * neurodrone (~neurodron@cpe-76-180-162-12.buffalo.res.rr.com) Quit (Quit: zzZZZZzz)
[7:26] * LordTerminus (~Terminus@ip-66-33-206-8.dreamhost.com) Quit (Ping timeout: 480 seconds)
[9:02] * chraible (~chraible@blackhole.science-computing.de) Quit (Remote host closed the connection)
[9:05] * gregorg (~Greg@ has joined #ceph
[9:19] * sagewk (~sage@ip-66-33-206-8.dreamhost.com) Quit (Ping timeout: 480 seconds)
[9:19] * sjust (~sam@ip-66-33-206-8.dreamhost.com) Quit (Ping timeout: 480 seconds)
[9:20] * sjust (~sam@ip-66-33-206-8.dreamhost.com) has joined #ceph
[9:21] * sagewk (~sage@ip-66-33-206-8.dreamhost.com) has joined #ceph
[9:35] * lxo (~aoliva@ Quit (Quit: later)
[9:43] * lxo (~aoliva@ has joined #ceph
[9:53] * Yoric (~David@dau94-10-88-189-211-192.fbx.proxad.net) has joined #ceph
[10:11] * allsystemsarego (~allsystem@ has joined #ceph
[11:18] * gregaf1 (~Adium@ip-66-33-206-8.dreamhost.com) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * josef (~seven@nat-pool-rdu.redhat.com) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * aliguori (~anthony@cpe-70-123-132-139.austin.res.rr.com) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * maswan (maswan@kennedy.acc.umu.se) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * [ack]_ (ANONYMOUS@ Quit (charon.oftc.net synthon.oftc.net)
[11:18] * monrad-51468 (~mmk@domitian.tdx.dk) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * darkfader (~floh@ Quit (charon.oftc.net synthon.oftc.net)
[11:18] * Jiaju (~jjzhang@ Quit (charon.oftc.net synthon.oftc.net)
[11:18] * lidongyang (~lidongyan@ Quit (charon.oftc.net synthon.oftc.net)
[11:18] * badari (~badari@ Quit (charon.oftc.net synthon.oftc.net)
[11:18] * cephuser1 (~cephuser1@173-24-225-53.client.mchsi.com) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * cclien_ (~cclien@ec2-175-41-146-71.ap-southeast-1.compute.amazonaws.com) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * MK_FG (~MK_FG@ Quit (charon.oftc.net synthon.oftc.net)
[11:18] * lxo (~aoliva@ Quit (charon.oftc.net synthon.oftc.net)
[11:18] * sagewk (~sage@ip-66-33-206-8.dreamhost.com) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * sjust (~sam@ip-66-33-206-8.dreamhost.com) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * djlee (~dlee064@des152.esc.auckland.ac.nz) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * bchrisman1 (~Adium@c-98-207-207-62.hsd1.ca.comcast.net) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * jjchen (~jjchen@lo4.cfw-a-gci.greatamerica.corp.yahoo.com) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * nolan (~nolan@phong.sigbus.net) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * allsystemsarego (~allsystem@ Quit (charon.oftc.net synthon.oftc.net)
[11:18] * atg (~atg@please.dont.hacktheinter.net) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * sage (~sage@dsl092-035-022.lax1.dsl.speakeasy.net) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * iggy (~iggy@theiggy.com) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * tjikkun_ (~tjikkun@195-240-187-63.ip.telfort.nl) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * eternaleye_ (~eternaley@ Quit (charon.oftc.net synthon.oftc.net)
[11:18] * Meths (rift@ Quit (charon.oftc.net synthon.oftc.net)
[11:18] * Dantman (~dantman@S0106001eec4a8147.vs.shawcable.net) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * votz (~votz@dhcp0020.grt.resnet.group.UPENN.EDU) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * pruby (~tim@leibniz.catalyst.net.nz) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * todin (tuxadero@kudu.in-berlin.de) Quit (charon.oftc.net synthon.oftc.net)
[11:18] * Guest3488 (quasselcor@bas11-montreal02-1128536388.dsl.bell.ca) Quit (charon.oftc.net synthon.oftc.net)
[11:19] * allsystemsarego (~allsystem@ has joined #ceph
[11:19] * lxo (~aoliva@ has joined #ceph
[11:19] * sagewk (~sage@ip-66-33-206-8.dreamhost.com) has joined #ceph
[11:19] * sjust (~sam@ip-66-33-206-8.dreamhost.com) has joined #ceph
[11:19] * djlee (~dlee064@des152.esc.auckland.ac.nz) has joined #ceph
[11:19] * eternaleye_ (~eternaley@ has joined #ceph
[11:19] * cephuser1 (~cephuser1@173-24-225-53.client.mchsi.com) has joined #ceph
[11:19] * bchrisman1 (~Adium@c-98-207-207-62.hsd1.ca.comcast.net) has joined #ceph
[11:19] * aliguori (~anthony@cpe-70-123-132-139.austin.res.rr.com) has joined #ceph
[11:19] * gregaf1 (~Adium@ip-66-33-206-8.dreamhost.com) has joined #ceph
[11:19] * Meths (rift@ has joined #ceph
[11:19] * Dantman (~dantman@S0106001eec4a8147.vs.shawcable.net) has joined #ceph
[11:19] * maswan (maswan@kennedy.acc.umu.se) has joined #ceph
[11:19] * votz (~votz@dhcp0020.grt.resnet.group.UPENN.EDU) has joined #ceph
[11:19] * josef (~seven@nat-pool-rdu.redhat.com) has joined #ceph
[11:19] * darkfader (~floh@ has joined #ceph
[11:19] * tjikkun_ (~tjikkun@195-240-187-63.ip.telfort.nl) has joined #ceph
[11:19] * Guest3488 (quasselcor@bas11-montreal02-1128536388.dsl.bell.ca) has joined #ceph
[11:19] * todin (tuxadero@kudu.in-berlin.de) has joined #ceph
[11:19] * lidongyang (~lidongyan@ has joined #ceph
[11:19] * MK_FG (~MK_FG@ has joined #ceph
[11:19] * atg (~atg@please.dont.hacktheinter.net) has joined #ceph
[11:19] * nolan (~nolan@phong.sigbus.net) has joined #ceph
[11:19] * pruby (~tim@leibniz.catalyst.net.nz) has joined #ceph
[11:19] * Jiaju (~jjzhang@ has joined #ceph
[11:19] * cclien_ (~cclien@ec2-175-41-146-71.ap-southeast-1.compute.amazonaws.com) has joined #ceph
[11:19] * iggy (~iggy@theiggy.com) has joined #ceph
[11:19] * badari (~badari@ has joined #ceph
[11:19] * jjchen (~jjchen@lo4.cfw-a-gci.greatamerica.corp.yahoo.com) has joined #ceph
[11:19] * sage (~sage@dsl092-035-022.lax1.dsl.speakeasy.net) has joined #ceph
[11:19] * [ack]_ (ANONYMOUS@ has joined #ceph
[11:19] * monrad-51468 (~mmk@domitian.tdx.dk) has joined #ceph
[12:04] * chraible (~chraible@blackhole.science-computing.de) has joined #ceph
[12:12] <trollface> huh
[13:19] <chraible> hi
[13:20] <trollface> hi
[13:28] * ghaskins_mobile (~ghaskins_@66-189-113-47.dhcp.oxfr.ma.charter.com) has joined #ceph
[13:47] * macana (~ml.macana@ has joined #ceph
[13:48] * zwu (~root@ has joined #ceph
[14:40] * alexxy (~alexxy@ has joined #ceph
[14:48] * Yulya_th1_drama_queen (~Yulya@ip-95-220-180-110.bb.netbynet.ru) Quit (Quit: leaving)
[14:48] * Yulya (~Yulya@ip-95-220-180-110.bb.netbynet.ru) has joined #ceph
[14:50] * MarkN (~nathan@ has joined #ceph
[14:51] * Yulya (~Yulya@ip-95-220-180-110.bb.netbynet.ru) Quit ()
[14:51] * Yulya (~Yulya@ip-95-220-180-110.bb.netbynet.ru) has joined #ceph
[14:52] * Yulya (~Yulya@ip-95-220-180-110.bb.netbynet.ru) Quit ()
[14:53] * Yulya (~Yulya@ip-95-220-180-110.bb.netbynet.ru) has joined #ceph
[14:54] * alexxy (~alexxy@ Quit (Remote host closed the connection)
[14:54] * alexxy (~alexxy@ has joined #ceph
[14:58] * alexxy (~alexxy@ Quit (Read error: Connection reset by peer)
[15:01] * alexxy (~alexxy@ has joined #ceph
[15:13] * ghaskins_mobile (~ghaskins_@66-189-113-47.dhcp.oxfr.ma.charter.com) Quit (Quit: This computer has gone to sleep)
[15:16] * neurodrone (~neurodron@cpe-76-180-162-12.buffalo.res.rr.com) has joined #ceph
[16:41] * Yoric (~David@dau94-10-88-189-211-192.fbx.proxad.net) Quit (Ping timeout: 480 seconds)
[16:42] * neurodrone (~neurodron@cpe-76-180-162-12.buffalo.res.rr.com) Quit (Read error: Connection reset by peer)
[16:42] * neurodrone (~neurodron@cpe-76-180-162-12.buffalo.res.rr.com) has joined #ceph
[16:50] * Yoric (~David@dau94-10-88-189-211-192.fbx.proxad.net) has joined #ceph
[16:52] * pombreda (~Administr@ has joined #ceph
[16:56] <pombreda> gregaf1: howdy :)
[17:08] * neurodrone (~neurodron@cpe-76-180-162-12.buffalo.res.rr.com) Quit (Ping timeout: 480 seconds)
[17:11] * neurodrone (~neurodron@cpe-76-180-162-12.buffalo.res.rr.com) has joined #ceph
[17:12] * joshd (~joshd@ip-66-33-206-8.dreamhost.com) has joined #ceph
[17:29] * frank_ (frank@november.openminds.be) Quit (Read error: Connection reset by peer)
[17:29] * wonko_be (bernard@november.openminds.be) Quit (Read error: Connection reset by peer)
[17:31] * bchrisman1 (~Adium@c-98-207-207-62.hsd1.ca.comcast.net) Quit (Quit: Leaving.)
[17:53] * greglap (~Adium@ has joined #ceph
[17:55] <greglap> hi pombreda
[17:56] <pombreda> greglap: hi :) hey, the playground is back up, but the ceph FS is not yet mounted there
[17:57] <pombreda> greglap: just checking if there was any news on your side on that front
[17:57] <greglap> hmmm, perhaps sagewk knows something about that
[17:57] <sagewk> pombreda: let me look
[17:57] <greglap> I was out of the office yesterday and really don't handle the playground except when nobody else available can do so ;)
[18:00] * Terminus (~Terminus@ip-66-33-206-8.dreamhost.com) has joined #ceph
[18:20] * Tv (~Tv|work@ip-66-33-206-8.dreamhost.com) has joined #ceph
[18:23] <sagewk> pombreda: it's up.
[18:24] <sagewk> the disks are almost full, though, so don't write too much new data. (or even delete some stuff)
[18:24] <sagewk> there is a node still offline due to a bad disk
[18:38] * greglap (~Adium@ Quit (Quit: Leaving.)
[18:40] * bchrisman (~Adium@70-35-37-146.static.wiline.com) has joined #ceph
[18:57] * underdark is now known as failbaitr
[18:57] * cmccabe (~cmccabe@ has joined #ceph
[19:03] * pennacchia (~alessandr@host189-54-dynamic.181-80-r.retail.telecomitalia.it) has joined #ceph
[19:08] * pennacchia (~alessandr@host189-54-dynamic.181-80-r.retail.telecomitalia.it) has left #ceph
[19:09] <sagewk> 10:15 again today!
[19:48] * greglap (~Adium@ip-66-33-206-8.dreamhost.com) has joined #ceph
[19:59] * [ack]_ (ANONYMOUS@ Quit (Server closed connection)
[19:59] * [ack] (ANONYMOUS@ has joined #ceph
[20:00] <cmccabe> s3tests doesn't run for me unless I set is_secure=no
[20:02] <pombreda> sagewk: thanks .. I'll delete some stuffs then
[20:02] <cmccabe> even then, I seem to be getting a lot of 'E' (errors) which makes me wonder if my config is correct?
[20:02] <cmccabe> is s3tests currently giving Es to rgw?
[20:12] <bchrisman> sync flag didn't make a difference in my nfs test??? verifying via scp directly to the kernel-ceph mounted fs??? but I've tested that before.. so that'll be correct??? will check cfuse reexport next.
[20:15] <cmccabe> tv: can you explain why you think Owner is optional in the Acl XML?
[20:16] <Tv> cmccabe: hold on looking up the docs
[20:16] <cmccabe> tv: I examined http://doc.s3.amazonaws.com/2006-03-01/AmazonS3.xsd and I don't see minOccurs=0 next to it
[20:16] <cmccabe> tv: next to Owner I mean
[20:16] <cmccabe> tv: oh, never mind
[20:17] <cmccabe> tv: the relevant thing is SetObjectAccessControlPolicy, which actually includes an AccessControlList, not an AccessControlPolicy
[20:17] <Tv> heh ok
[20:17] <cmccabe> tv: so this whole issue was moot. obsync was never actually changing the owner of anything
[20:17] <cmccabe> tv: it's just a somewhat clumsy API in libboto
[20:18] <Tv> then it's also never preserving the owner of anything
[20:18] <cmccabe> tv: correct
[20:18] <Tv> which is worth noting with pretty big letters
[20:18] <cmccabe> tv: I filed #1050 about that
[20:18] <cmccabe> tv: well, not specifically about that
[20:19] <cmccabe> tv: the problem with warning when the owner changes is that I don't know what my user id is :(
[20:20] <cmccabe> tv: all I get is a public / private access key pair, but I don't see how to go from that to a user_id
[20:20] <Tv> http://docs.amazonwebservices.com/AmazonS3/latest/API/index.html?RESTBucketPUTacl.html says "Required" "no" on lots of things, including Owner
[20:20] <cmccabe> tv: I guess I could create an object and see what Owner it gets, but I'd really like to avoid that
[20:20] <Tv> cmccabe: well you can still ensure all incoming objects had the same owner
[20:21] <cmccabe> tv: the same as what?
[20:21] <Tv> as the previous one
[20:21] <Tv> assert len(set(all_owners)) == 1
[20:21] <cmccabe> tv: that involves doing an extra getAcl on every single object
[20:21] <cmccabe> tv: I'm not keen on it
[20:21] <Tv> oh i thought you needed the acl anyway
[20:21] <cmccabe> tv: not after I create the object
[20:21] <Tv> huh
[20:22] <cmccabe> tv: the issue is that there are two different "acls" here
[20:22] <cmccabe> tv: AccessControlPolicy = { owner, ACL }
[20:22] <cmccabe> tv: AccessControlList = { ACL }
[20:22] <Tv> oh ah policy vs acl
[20:22] <cmccabe> tv: I can control AccessControlList
[20:22] <Tv> but does policy always include acl? then you can just fetch policy
[20:22] <cmccabe> tv: AccessControlPolicy is something I can't control
[20:22] <cmccabe> tv: sure, I can add an extra fetch of policy, once I've written an object
[20:23] <cmccabe> tv: just to see what was in AccessControlPolicy
[20:23] <Tv> why after write?
[20:23] <Tv> you fetch acl already
[20:23] <Tv> can't you replace that by fetching policy, then use the acl subsection of the policy for setting the acl
[20:23] <cmccabe> tv: I fetch the acl of the source
[20:23] <cmccabe> tv: I don't understand what you're asking
[20:24] <Tv> cmccabe: tv: AccessControlPolicy = { owner, ACL }
[20:24] <Tv> cmccabe: tv: AccessControlList = { ACL }
[20:24] <Tv> for an incoming object, you currently fetch AccessControlList, convert that, set on outgoing object
[20:25] <Tv> can you instead fetch AccessControlPolicy, take the ACL from inside it, convert that, set on outgoing object
[20:25] <cmccabe> tv: I fetch AccessControlPolicy from src and set AccessControlList on dst
[20:25] <Tv> then you'd have owner
[20:25] <Tv> then you already have the owner info
[20:25] <cmccabe> I have the old owner info
[20:25] * Meths_ (rift@ has joined #ceph
[20:25] <Tv> yes
[20:25] <Tv> ensure you only ever see the same owner
[20:25] <cmccabe> which isn't necessarily the same as the new owner info
[20:25] <Tv> if not, give a warning
[20:25] <Tv> as you can't preserve it
[20:25] <cmccabe> you're not understanding
[20:26] <cmccabe> I don't currently fetch the AccessControlPolicy from the object I create
[20:26] <Tv> i'm not saying you should
[20:26] <cmccabe> and I have no way to know what it will be, since I don't know my user id
[20:26] <Tv> i'm not sure how i can say this more clearly
[20:26] * cephuser1 (~cephuser1@173-24-225-53.client.mchsi.com) Quit (Read error: Operation timed out)
[20:26] <Tv> validate that incoming objects have only one owner, warn if not
[20:27] <Tv> you don't need to map access keys to userids to do that
[20:27] <cmccabe> even if they have only one owner, it may not be the same as my current user_id
[20:27] <Tv> ignore that
[20:27] <cmccabe> why
[20:27] <Tv> you were given an access_key to use
[20:27] <Tv> if you wanted to map owners, you'd need an access_key per owner
[20:27] <Tv> you obviously didn't want to write the code for that
[20:27] <Tv> so don't even try
[20:28] * cephuser1 (~cephuser1@173-24-225-53.client.mchsi.com) has joined #ceph
[20:28] <cmccabe> here is the problem in a nutshell.
[20:28] <cmccabe> I can't go from access_key to user_id.
[20:29] <cmccabe> I guess perhaps I fetch the AccessControlPolicy of the first object I create, and deduce my user_id from its Owner.
[20:29] <Tv> and i just told you you don't have to
[20:29] <Tv> but whatever
[20:29] <cmccabe> how can I warn about changes in user_id if I don't know when user_id is changing?
[20:29] <cmccabe> sorry, Owner
[20:29] <Tv> because you're warning about *incoming* Owner data
[20:29] <Tv> which you get from the policies you're reading
[20:30] <cmccabe> ok, under what conditions do I warn then
[20:30] <Tv> and which has *nothing* to do with the access_key on the target side you're creating objects with
[20:30] <Tv> if it differs from what you saw on the previous object
[20:30] <cmccabe> but again, that doesn't matter
[20:30] <cmccabe> that covers some of the cases, but not others
[20:31] <Tv> you've explicitly said you're not gonna map the old owners to new owners; your code doesn't use multiple access_keys on the target side so it's unable to do that
[20:31] * Meths (rift@ Quit (Ping timeout: 480 seconds)
[20:31] <cmccabe> I am at least able to warn about changes in owner
[20:31] <Tv> ensuring that the source data has just one owner is exactly what's needed
[20:31] <Tv> anything else, your code is unable to handle anyway
[20:32] <cmccabe> not really
[20:32] <Tv> *sigh*
[20:32] <cmccabe> I can set --xuser foo=baz --xuser bar=baz
[20:32] <cmccabe> assuming that I am baz, I would not want to warn about a source bucket containing both foo and bar objects
[20:32] <Tv> i still doubt you can set the owner on s3, without having the secret access key for the userid
[20:33] <Tv> oh bah
[20:33] <Tv> then you do that mapping before you remember what was the previous owner
[20:33] <cmccabe> because the admin has explicitly asked me to map both of those users to baz
[20:33] <Tv> it's just not that hard
[20:34] <cmccabe> you're also assuming that I will copy everything every time, which is not true
[20:34] <cmccabe> sometimes I may do no PUTs at all, if source and destination look the same
[20:34] <Tv> this is not about the PUTs at all
[20:35] <cmccabe> I guess when comparing source and destination ACLPolicy, I should ignore owner
[20:36] <cmccabe> it would be silly to re-PUT something just because it's not owned by the current user
[20:38] <cmccabe> anyway
[20:38] <cmccabe> I think I can implement the warning for newly created objects having a different owner than the original.
[20:39] <cmccabe> I really wish I could just look up my stupid user_id
[20:39] <cmccabe> it seems like such an obvious and simple thing to have in the API, but it's just not
[20:39] <Tv> oh sigh
[20:39] <cmccabe> but there is a way around
[20:39] <Tv> this is not about the object you create, this is about the object you read
[20:40] <cmccabe> tv: here is the output of s3-tests for me
[20:40] <cmccabe> tv: ..E..............E...............E..E.....E...E
[20:40] <cmccabe> tv: is that expected?
[20:41] <Tv> cmccabe: did you read the readme about fails_on_XXX ?
[20:41] <Tv> evidence points at "no"
[20:41] <cmccabe> tv: I just want to know if these test failures are expected
[20:41] <Tv> once you do that right, any errors are unexpected (based on when *i* last ran it; yehuda has removed some fails_on_rgw attributes since)
[20:41] <cmccabe> tv: if they are, then yes, I will filter them
[20:42] <Tv> cmccabe: and i just told you the mechanism how we keep track of that
[20:42] <cmccabe> tv: so this is your enigmatic way of saying that rgw fails on certain things, and to suppress those failures, you should use -a '!fails_on_rgw'
[20:42] <cmccabe> tv: I cracked the code!
[20:43] <Tv> s/suppress those failures/skip those tests/
[20:43] <cmccabe> for what it's worth, the function decoration notation is elegant
[20:43] <Tv> lunch bbl
[20:47] * cephuser1 (~cephuser1@173-24-225-53.client.mchsi.com) Quit (Ping timeout: 480 seconds)
[20:49] * cephuser1 (~cephuser1@173-24-225-53.client.mchsi.com) has joined #ceph
[21:00] * neurodrone (~neurodron@cpe-76-180-162-12.buffalo.res.rr.com) Quit (Quit: zzZZZZzz)
[21:10] * MK_FG (~MK_FG@ Quit (Remote host closed the connection)
[21:32] * cmccabe (~cmccabe@ has left #ceph
[21:33] * macana (~ml.macana@ Quit ()
[21:35] * cmccabe (~cmccabe@ has joined #ceph
[21:40] * Meths_ is now known as Meths
[22:14] <sagewk> cmccabe/anyone: is there a g++ option to warn when function parameters shadow class members?
[22:17] <joshd> sagewk: it looks like there's -Wshadow, although it may be too strict
[22:21] <Tv> sounds like a good idea still.. you can work around individual false positives with #pragmas
[22:22] <sagewk> yeah
[22:22] <sagewk> wow, that generates a lot of noise currently.
[22:22] <sagewk> but probably all worth fixing.
[22:22] <sagewk> this would have caught gregaf's bug just now
[22:23] <gregaf1> does it generate noise on master too, or is it just that there's a bunch of shadowing in the OSD state conversion?
[22:23] <Tv> Linus has a good point though, e.g.
[22:23] <Tv> diff-delta.c:142: warning: declaration of 'index' shadows a global declaration
[22:23] <Tv> that's just too much
[22:23] <sagewk> it warns on shadowing method names too.. ick
[22:24] <Tv> http://kerneltrap.org/node/7434
[22:24] <Tv> perhaps a lint-like tool would be more configurable
[22:28] * allsystemsarego (~allsystem@ Quit (Quit: Leaving)
[22:30] <sagewk> tv: we shouldn't have [m]any globals. and those are prefixed by g_
[22:31] <joshd> gregaf1: lots of noise in master as well (many outside of the OSD code)
[22:32] <sagewk> well its a project, but probably worth it.
[22:34] <Tv> well linus' point was a collision against "index", which is libc
[22:34] <Tv> so it's sort of out of your hands, too
[22:35] * neurodrone (~neurodron@cpe-76-180-162-12.buffalo.res.rr.com) has joined #ceph
[22:45] <Tv> socket.setdefaulttimeout(self._socket_timeout)
[22:45] <Tv> oh autotest
[22:45] <Tv> how you like to mess with me so
[22:45] <Tv> (in other news, global state is bad)
[23:05] <cmccabe> sagewk: I had a patchset that fixed -Wshadow warnings
[23:06] <cmccabe> sagewk: I gave up halfway through because it was starting to become a huge patch
[23:06] <sagewk> it's a bit daunting
[23:08] <sagewk> joshd: if we make state_name const char * we can use it as a map key etc and only be copying a pointer around
[23:08] <cmccabe> sagewk: it would be a lot nicer if it didn't warn about variables "shadowing" functions
[23:08] <sagewk> since it's a constant string
[23:08] <cmccabe> sagewk: which is silly to begin with because the namespace for variables and functions is separate!
[23:09] <sagewk> cmccabe: agreed.
[23:09] <cmccabe> sagewk: er, sorry, meant variables and types
[23:09] <cmccabe> sagewk: but actually functions aren't shadowed by variables either
[23:09] <sagewk> altho i saw this:http://stackoverflow.com/questions/2958457/gcc-wshadow-is-too-strict see teh one ranked 2
[23:10] <sagewk> (it can still be bad if there's a functor). not that we do that. but whatever, i think it'll be worth the cleanup in the end.
[23:11] <cmccabe> sagewk: I tried to test this and got
[23:12] <cmccabe> sagewk: shadow.cc:12: error: declaration of ???int Foo::bar???
[23:12] <cmccabe> sagewk: shadow.cc:9: error: conflicts with previous declaration ???int Foo::bar()???
[23:12] <cmccabe> sagewk: Without any warnings enabled
[23:13] <cmccabe> sagewk: although you can shadow a function in a base class with a variable in the derived class
[23:14] <cmccabe> sagewk: this kind of thing doesn't cause problems until you start using the other C++ "features" like overloading and default parameters
[23:15] <gregaf1> well it's a good thing we never use any of those then
[23:15] <sagewk> :)
[23:15] <cmccabe> heh
[23:15] <cmccabe> default parameters are a pet peeve of mine
[23:15] <cmccabe> never liked them
[23:16] <cmccabe> I do use them every now and then in Python, but I can't expect proper typechecking out of Python anyway.
[23:16] <sagewk> yeah they're a bad habit.
[23:17] <cmccabe> someday we should scan the source for unintentional conversion constructors
[23:17] <Tv> cmccabe: in python, i always do def foo(bar=None): if bar is None: bar = somedefault
[23:17] <joshd> sagewk: that works, just need to declare the states statically. we could use an enum instead
[23:17] <Tv> cmccabe: otherwise you can't reliably wrap it, or the wrappers must know the default values too, etc
[23:17] <cmccabe> tv: you are using the proper style then
[23:17] <Tv> cmccabe: so all i really want is "was it passed or not"
[23:18] <Tv> perhaps some programming language some day will get that right
[23:18] <cmccabe> tv: I only recently became aware of the consequences of using mutable objects as default parameters in Python
[23:18] <joshd> sagewk: either is fine with me
[23:18] <Tv> oh yeah that too
[23:18] <cmccabe> tv: seems like a deadly trap
[23:18] <cmccabe> tv: I wonder if Guido finally removed it in 3.0
[23:18] <Tv> nope
[23:19] <cmccabe> never let a good crisis go to waste
[23:19] <cmccabe> as Rahm Emanuel would say
[23:20] <cmccabe> tv: <troll mode on> golang got it right by just requiring that you pass all the parameters you defined!
[23:20] <Tv> hah
[23:20] <Tv> i've actually passed structs to get around that
[23:20] * ghaskins_mobile (~ghaskins_@66-189-113-47.dhcp.oxfr.ma.charter.com) has joined #ceph
[23:21] <Tv> which is what javascript forces you to do, too
[23:21] <cmccabe> sagewk: the conversion constructor thing is described here http://www.keithschwarz.com/cs106l/spring2009/handouts/220_Conversion_Constructors.pdf
[23:21] <cmccabe> sagewk: just the first link I hit
[23:21] <Tv> well they're not structs, they're objects, but whatever
[23:21] <cmccabe> sagewk: In addition to any other benefits, getting rid of spurious conversion constructors would probably speed up the build a lot.
[23:22] <sagewk> yeah we have a few of them, mostly for things like utime_t. they're dangerous though
[23:22] <cmccabe> sagewk: there are a few cases where you might want them
[23:22] <cmccabe> sagewk: but the problem is that they're the default
[23:22] <Tv> but i have to say i really, really like the pythonic idea of kwargs (call with names, "foo(bar=42)")
[23:23] <cmccabe> sagewk: it's just another example of bad defaults in C++, like having the copy constructor exist by default for every class
[23:23] <Tv> remembering the positions just gets frustrating fast
[23:23] <Tv> and with go's semantics, it could actually do that and just pass zero values for the ones you didn't specify
[23:23] <cmccabe> tv: I've been pleasantly surprised by how python does named arguments
[23:23] <Tv> and it'd work beautifully
[23:23] <Tv> go's zero values are an ingenious hack
[23:24] <cmccabe> tv: it is nice to have everything start as zero
[23:24] <Tv> every datatype has a smart, well defined, "uninitialized" value
[23:24] <Tv> and it's often the most useful default value for everything
[23:24] <Tv> e.g. maps are empty etc
[23:24] <cmccabe> tv: yeah, it's a real relief after C
[23:25] <cmccabe> tv: the other unconventional thing go allows you to do is being able to return pointers to local variables
[23:25] <cmccabe> tv: and have it work
[23:25] <cmccabe> tv: well, I guess that's conventional in GC languages
[23:25] <Tv> yeah gc makes a huge difference there
[23:25] <cmccabe> tv: but it's still somewhat of a change of pace for me
[23:26] <cmccabe> tv: my big philsophical problem with default args in any language is that it often reflects poor interface design
[23:26] <Tv> well that's kinda the c/go argument
[23:26] <Tv> you're often better off with multiple functions to call
[23:26] <cmccabe> tv: or just put those multiple parameters into a struct/datatype
[23:26] <Tv> and surprise surprise, that's often true with c++ too, where you'd be tempted to have default variables ;)
[23:27] <cmccabe> tv: so that rather than passing hotdog_len, hotdog_size, hotdog_toppings, etc. you just pass struct hotdog
[23:28] <cmccabe> tv: otherwise you end up with stuff like the X11 interface, where functions can have 20 parameters
[23:28] <cmccabe> tv: default parameters would be a "fix" for not having to type those 20 parameters... but is it the right fix?
[23:28] <Tv> x11 might even come from a time when you couldn't pass structs as c function args ;)
[23:28] * joshd (~joshd@ip-66-33-206-8.dreamhost.com) Quit (Quit: Leaving.)
[23:29] <Tv> (pointers to structs, sure, but that's differnt)
[23:29] <cmccabe> tv: actually, I don't know if I've written code that passed a struct by value in years
[23:29] <cmccabe> tv: well, I guess in C++ I probably have.
[23:29] <Tv> autotest rpc mechanism seems to work now; right now i have a test that spreads mon.0 key via an rpc call instead of the old kludge
[23:30] <Tv> next up, work through the skeleton, changing it to use the rpc calls where appropriate
[23:30] <Tv> then "start osd.42 on node 34" will be an rpc call, you can call another rpc to kill it, the first call will return once the child exits, etc
[23:37] * pombreda (~Administr@ Quit (Quit: Leaving.)
[23:49] <cmccabe> looks like if you pass amazon an XML file that begins with a newline, it errors out with a cryptic message
[23:49] <cmccabe> another high-quality 30 minutes spent discovering that
[23:51] <Tv> cmccabe: no whitespace before prolog (or first element, if no prolog), that's in xml spec
[23:52] <cmccabe> tv: so XML is actually a whitespace-sensitive format
[23:52] <cmccabe> tv: hilarious
[23:53] <Tv> that's actually a good thing
[23:53] <Tv> sniffing what content a file has becomes much more reliable
[23:54] <cmccabe> tv: it makes it harder to concatenate XML documents or cut them into pieces
[23:54] <cmccabe> tv: and you give up all of this because... you want /usr/bin/file to run quicker?
[23:54] <Tv> you can't arbtrarily concat xml docs anyway
[23:54] <cmccabe> tv: well, that's another flaw
[23:54] <Tv> prolog is a prolog
[23:55] <Tv> and there's only one top-level element allowed
[23:55] <cmccabe> tv: really all of the ways that it's different than JSON are flaws :)
[23:55] <cmccabe> tv: except for one, which is the concept of validating against a schema
[23:55] <Tv> different purposes
[23:55] <cmccabe> tv: except they made even that overly complicated so nobody actually does it
[23:55] <Tv> (anyone who's using xml for "structured data" is doing it wrong)
[23:55] <cmccabe> tv: libexpat sure doesn't
[23:56] <cmccabe> tv: what else would you use XML for?
[23:56] <Tv> as a markup language
[23:56] <cmccabe> tv; why can't people just learn HTML
[23:56] <cmccabe> tv: sometimes I think there are as many markup languages as programmers... and that's not a good thing
[23:56] <trollface> 2011-05-05 01:56:38.999735 7f9221f01740 librbd: failed to assign a block name for image
[23:57] <Tv> html is not extensible the same way
[23:57] <trollface> 0xffffuuuu
[23:57] * MarkN (~nathan@ has left #ceph
[23:58] <cmccabe> tv: SGML then
[23:58] <Tv> cmccabe: oh god no
[23:58] <Tv> cmccabe: xml is very good at replacing every use of sgml
[23:58] <cmccabe> tv: oh, never mind, XML is a subset of SGML
[23:58] <Tv> that's the reason it was invented
[23:58] <Tv> it's not a subset
[23:59] <cmccabe> tv: well, wikipedia thinks so
[23:59] <Tv> it's a modernized, cleanup, and full-of-steroids-pumped replacement
[23:59] <cmccabe> tv: XML is still a pretty terrible markup language
[23:59] <cmccabe> tv: if any wiki asked me to use XML, I think I'd have to barf

These logs were automatically created by CephLogBot on irc.oftc.net using the Java IRC LogBot.