<asheesh>
i.e. not the grain subdomain, but this: "Sandstorm allows apps to expose their HTTP APIs at a permanent URL, as opposed to ephemeral domains used within the grain-frame. Sandstorm does access control on each inbound HTTP API request to the app."
<zarvox>
liam: wonder if the phabricator daemons are dying for some reason
<patrickod>
ahh so "offer templates" is the mechanism by which gitweb etc... create the git clone instructions using the appropriate credentials
<liam>
i haven't even looked at the logs :P
<liam>
because I wasn't sure exactly whether that is what should be happening, so i set up a dedicated/proper phabricator install and, yep, it should be happening
davidjgraph has joined #sandstorm
<zarvox>
*nod*
<liam>
and that's the point where I said that I wished I had the foresight to forward port 22
<liam>
because I've been developing on my in-home server that I haven't exposed to the world, and now i'm just stuck at work and bored
Telesight has quit [Quit: Leaving.]
mrshu has quit [*.net *.split]
mattl has quit [*.net *.split]
tg has quit [*.net *.split]
maurer has quit [*.net *.split]
kxra has quit [*.net *.split]
pdurbin has quit [*.net *.split]
robbintt has quit [*.net *.split]
xming has quit [*.net *.split]
tantalum has quit [*.net *.split]
gillisig has quit [*.net *.split]
liam has quit [*.net *.split]
xming_ has joined #sandstorm
xming_ has joined #sandstorm
xming_ has quit [Changing host]
robbintt_ has joined #sandstorm
tantalum has joined #sandstorm
maurer has joined #sandstorm
kxra has joined #sandstorm
liam has joined #sandstorm
pdurbin has joined #sandstorm
tantalum has quit [Client Quit]
mrshu has joined #sandstorm
tg has joined #sandstorm
mattl has joined #sandstorm
gillisig has joined #sandstorm
<zarvox>
liam: is usr/bin/git-http-backend a wrapper script you created? I'm only finding it at /usr/lib/git-core/git-http-backend
eternaleye has quit [Changing host]
eternaleye has joined #sandstorm
<liam>
zarvox, yes. it's just a sh script that passes to the git-core script. it was that or modify the path for phabricator, and that was easier
<liam>
the sandstorm-files.list must be missing it
<liam>
actually nvm that makes no sense, i have to add it to the build file, ty
<zarvox>
liam: just filed a couple PRs with small patches
<liam>
yeah those comments in phabricator.ini are actually just for testing
<liam>
i accidentally committed :P
<zarvox>
Heh. Feel free to reject/close and submit a better patch :)
<liam>
also. is it possible for me to detect whether i'm in dev mode or not? within build.sh in particular
<zarvox>
no, we currently have no provisions for distinguishing between for-dev and not-for-dev builds
<zarvox>
I imagine you'd like to turn off the aggressive caching or something when you're "developing" but leave it on for "production"?
<asheesh>
Arguably you can detect dev mode by seeing if ptrace works.
<liam>
yes, exactly, zarvox. the aggressive caching is actually so good that it's impossible to dev with it on, even the standard cache-busting scripts don't break it lol
<zarvox>
Heh.
<zarvox>
asheesh: oh, that's an interesting idea. Though perhaps it'd be nicer if we passed dev-mode an environment variable by default.
<zarvox>
Alternately, detect the filesystem backing / and if it's fuse, assume devmode?
<asheesh>
Hah, if FUSE is detectable, then that works too.
<asheesh>
And yeah - I think that "is dev mode" is a subtle mess because it may not Do What I Mean, in that people might run the app in dev mode, then pack it, and then end up with their "dev mode" stuff packed, and then what good was that?
<asheesh>
But it could be for 100% runtime stuff.
<mokomull>
zarvox: I didn't think /proc/mounts was readable ;)
<mokomull>
asheesh: I've definitely broken things when I didn't actually test in a non-dev environment.
<zarvox>
mokomull: man 2 statfs
<mokomull>
__SWORD_TYPE favorite type
* asheesh
snickers.
<mokomull>
... how many definitions of WORD are there?
<mokomull>
> buf is a pointer to a statfs structure defined approximately as follows
<mokomull>
yes I like my buffers approximately defined.
<mokomull>
zarvox: TIL. I'm so used to the Linux ABI being "put random crap in /proc"
<zarvox>
mokomull: wow, I think that may be the first time I've taught you about a kernel API rather than vice-versa!
* zarvox
beams
<mokomull>
zarvox: you "taught" me vmsplice() once ;)
<zarvox>
touché
davidjgraph has quit [Remote host closed the connection]
<isd>
So, ipNetwork uses ByteStream to do the actual reading/writing from a tcp socket. Can I rely on sandstorm to call done() when the connection is closed from the other end? I'm hitting an issue with IRC Idler where the connection seems to drop at some point, but the app never notices.
<zarvox>
liam: FWIW, when I create a repo through the UI, I observe /var/assets/repos/1 is created
<zarvox>
and then I can clone it
<liam>
HEAD or after you remove the logic from that commit i linked?
<liam>
are there any files in /var/assets/repos/1/hooks that aren't *.sample ?
<zarvox>
after I remove the logic from the commit you linked
<zarvox>
hooks/pre-receive exists
<liam>
wtf
<zarvox>
is your git-http-backend executable?
<liam>
yes, git pushing and pulling was working
<liam>
i'm just going to reprovision
<zarvox>
Yeah, the nice thing about sandstorm is that it makes making new grains super easy :)
<dwrensha>
isd: Hm... Perhaps it ought to detect the "end" event as well, on call `done()` then too.
<zarvox>
dwrensha: isd: shouldn't that be client.on("end" not "close"?
<dwrensha>
I won the race!
* zarvox
salutes dwrensha
<isd>
zarvox: no idea; not terrible familiar with node/js/metor stuff
<isd>
*terribly
<liam>
zarvox: i /may/ have spent the past ~week of spare time debugging a non-issue. If this was for work, don't tell my boss
<dwrensha>
liam: care to share what the issue was?
<isd>
node.js docs san "close" is when the connection is fully shut down, so yeah, that's not going to call done() if my end of the connection hasn't already done so
<liam>
dwrensha, probably something i did within `enter-grain`. I don't know exactly, but re-provisioning made it disappear
<isd>
It probably should be "end," and that's probably why I'm never getting a disconnect.
<zarvox>
dwrensha: do you want to write that patch (also handling "end") or should I?
* dwrensha
thinks about how we could write a test to catch this
<liam>
actually, no, not enter-grain. Within vagrant vm ssh
<dwrensha>
we need some server listening on a TCP port, where it calls shutdown on the write half of connected sockets
<dwrensha>
currently our ipnetwork test connects to http://zarvox.org
<zarvox>
oh does it still hit my personal server? hilarious
<zarvox>
it's a text box you can put any http:// url in
<dwrensha>
if the test app has an IpNetwork and an IpInterface, can it connect to itself?
<zarvox>
in theory, yes
<dwrensha>
which IP address does IpInterface listen on?
<zarvox>
in theory it can also connect to mongo
<zarvox>
dwrensha: ::: I think?
<dwrensha>
the implementation appears to just do `server.listen(port)`
<dwrensha>
which means "every available interface", I think?
<dwrensha>
so in particular 127.0.0.1
<dwrensha>
so this sounds like a possible test to write
<ocdtrekkie>
Life would be so much easier if I learned to use Node properly.
<zarvox>
it's not immediately clear to me that we can emulate TCP connections as might be encountered in the wild with IpInterface/IpNetwork, but possibly!
<dwrensha>
I'm not sure what you mean by "emulate TCP connections as might be encountered in the wild".
<liam>
encountered a wild tcp connection. IP used ACK
<zarvox>
are we able to indicate half-open connections? timeouts?
<zarvox>
node by default disallows half-open connections, FWIW
<dwrensha>
you mean you can't call shutdown_write() on a socket in node?
<zarvox>
you can if you set allowHalfOpen to true, but we provide no way for apps to request such a thing from a TcpPort handle they have
<dwrensha>
our TCP connections are two parallel ByteStreams
<dwrensha>
if one is closed, then the socket is "half open"
<dwrensha>
where "closed" means "done()" has been sent, I think
<zarvox>
oh, then we should *always* be doing that instead
<dwrensha>
or maybe "closed" means "all references have been dropped?
<zarvox>
I don't know what the intended semantics are, but maybe we should decide on some and document them
<isd>
I've been writing code under the assumption than done() is equivalent to close()