robbintt has quit [Remote host closed the connection]
xet7_ has quit [Ping timeout: 268 seconds]
isd has quit [Ping timeout: 240 seconds]
maurer has quit [Ping timeout: 240 seconds]
ecloud has quit [Ping timeout: 240 seconds]
dograt has quit [Ping timeout: 240 seconds]
decause has quit [Ping timeout: 240 seconds]
_whitelogger has joined #sandstorm
Lionel_Debroux_ has quit [*.net *.split]
dcb has quit [*.net *.split]
aundro has quit [*.net *.split]
Tryum has quit [*.net *.split]
mrdomino has quit [*.net *.split]
Salt has quit [*.net *.split]
tg has quit [*.net *.split]
Guest97644 has quit [*.net *.split]
jagenau has quit [*.net *.split]
patrickod has quit [*.net *.split]
keturn has quit [*.net *.split]
mrshu has quit [*.net *.split]
dlitz_ has quit [*.net *.split]
biotim has quit [*.net *.split]
Na has quit [*.net *.split]
halindrome has quit [*.net *.split]
Tek` has quit [*.net *.split]
bemasc_ has quit [*.net *.split]
jparyani has quit [*.net *.split]
Lord has quit [*.net *.split]
nolski has quit [*.net *.split]
Triplefox has quit [*.net *.split]
uppermgmt has quit [*.net *.split]
iangreenleaf has quit [*.net *.split]
ftoad has quit [*.net *.split]
shachaf has quit [*.net *.split]
cmr has quit [*.net *.split]
mrdon has quit [*.net *.split]
guido has quit [*.net *.split]
strugee has quit [*.net *.split]
HalfEatenPie has quit [*.net *.split]
ptrvldz has quit [*.net *.split]
TC02 has quit [*.net *.split]
Zertrin[m] has quit [*.net *.split]
davidar has quit [*.net *.split]
gwillen has quit [*.net *.split]
xobs has quit [*.net *.split]
robbt has quit [*.net *.split]
sydney_untangle has quit [*.net *.split]
nwf has quit [*.net *.split]
rafaelmartins has quit [*.net *.split]
GauntletLizard has quit [*.net *.split]
warren_ has quit [*.net *.split]
gleb has quit [*.net *.split]
xet7 has quit [*.net *.split]
digitalcircuit has quit [*.net *.split]
TC01 has quit [*.net *.split]
tdfischer has quit [*.net *.split]
reisi has quit [*.net *.split]
ocdtrekkie has quit [*.net *.split]
dagelf has quit [*.net *.split]
larjona has quit [*.net *.split]
mmercer has quit [*.net *.split]
kentonv has quit [*.net *.split]
XgF has quit [*.net *.split]
russruss has quit [*.net *.split]
kxra_ has quit [*.net *.split]
aggelos__ has quit [*.net *.split]
daemoen_ has quit [*.net *.split]
niek has quit [*.net *.split]
ThePurgingPanda has quit [*.net *.split]
rolig has quit [*.net *.split]
pdurbin has quit [*.net *.split]
mokomull has quit [*.net *.split]
zarvox has quit [*.net *.split]
ragesoss has quit [*.net *.split]
TheJH has quit [*.net *.split]
Jan\ has quit [*.net *.split]
aldeka_ has quit [*.net *.split]
prettyvanilla has quit [*.net *.split]
mattl has quit [*.net *.split]
KCinJP has quit [*.net *.split]
saneki has quit [*.net *.split]
crw has quit [*.net *.split]
justincormack has quit [*.net *.split]
fkautz has quit [*.net *.split]
bpierre has quit [*.net *.split]
liam has quit [*.net *.split]
asheesh has quit [*.net *.split]
_iwc has quit [*.net *.split]
simonv3_ has quit [*.net *.split]
indiebio has quit [*.net *.split]
esmiurium has quit [*.net *.split]
_citruspi has quit [*.net *.split]
sugarpuff has quit [*.net *.split]
sknebel has quit [*.net *.split]
derf- has quit [*.net *.split]
gillisig has quit [*.net *.split]
xming has quit [*.net *.split]
coyotebush has quit [*.net *.split]
M-hrjet has quit [*.net *.split]
phildini has quit [*.net *.split]
TimePath[m] has quit [*.net *.split]
Simon[m] has quit [*.net *.split]
gillisig1 has quit [*.net *.split]
[d__d] has quit [*.net *.split]
CaptainCalliope has quit [*.net *.split]
ripdog has quit [Ping timeout: 247 seconds]
ripdog has joined #sandstorm
dlitz_ has joined #sandstorm
Zertrin[m] has joined #sandstorm
saneki has joined #sandstorm
keturn has joined #sandstorm
tg has joined #sandstorm
ocdtrekkie has joined #sandstorm
coyotebush has joined #sandstorm
esmiurium has joined #sandstorm
ripdog has joined #sandstorm
ripdog has quit [Changing host]
ripdog has quit [Ping timeout: 240 seconds]
ripdog has joined #sandstorm
<NhanH__>
My sandstorm is throwing an error when trying to open any grain, looking into the log it's "Exception while invoking method 'keepSessionAlive' Error: remote exception: expected result >= minBytes; Premature EOF" with a stack trace. Any suggestion on what I should be looking into ?
jemc has quit [Read error: Connection reset by peer]
jemc has joined #sandstorm
wolcen_ has joined #sandstorm
neynah has joined #sandstorm
wolcen has quit [Quit: Server crashed?!]
wolcen_ is now known as wolcen
BigShip has quit [Ping timeout: 248 seconds]
<zarvox>
Simon[m]: when are you calling getPublicId? if it's literally "first thing after being launched", you might have to wait a few msec for sandstorm-http-bridge to create the socket
<zarvox>
(maybe sandstorm-http-bridge should create that socket before spawning the subprocess? maybe it does already? I forget.)
<Simon[m]>
zarvox: I call it within the app on clicking a button
<Simon[m]>
within the grain rather
<Simon[m]>
Should it work when it's called outside of the grain inside the vm, while the grain is up and running?
<Simon[m]>
(which I was trying to do to see if the command passed in general)
<zarvox>
No, it'll only work within the grain's namespace
<maurer>
Has there been any work on level2 capnproto (persistent capabilities)? Sandstorm itself seems to have some notion of this via save and restore methods in the SandstormApi context, but I'm wondering if anything more general has been done.
<isd>
maurer: what more would you be looking for? rpc.capnp seems to punt on the whole thing
<maurer>
isd: Well, for example, how do you know who to reconnect to to restore a saved capability? Is there a standard way of encoding that?
<maurer>
In Sandstorm itself, this is obvious, since your grain has a canonical SandstormApi capability to ask
<isd>
rpc.capnp seems to punt on basically all of this. See the comments for SturdyRef; basically "transport specific" is the answer
<maurer>
but if I wanted to save a capability some daemon gave me, and later know how to restore it, I'd need to either keep extra metadata, or the token format would need to be at least transparent enough to know who your sender was
<isd>
And as far as I know there's not been much work on >2 vat protocols
<maurer>
Yeah, I mean, my case is a hub/spoke network. Treating the whole thing as a vat would be cool, but I can deal just fine with a central coordinator for the moment
<maurer>
basically I was trying to figure out whether there was any semi-standardized way of figuring out what connections to re-establish/which daemons need to be alive again in order to restore a capability
<maurer>
I can adhoc the whole thing, but was hoping for something a little cleaner
<isd>
Maybe ask on the capnproto mailing list in case I've missed something, but I think the answer is basically no.
<maurer>
I mean, I know the answer _was_ no, I was basically wondering if the gradual march of progress had produced an update
<isd>
Yeah. again, I think it's still no. But ping the mailing list in case I'm wrong.
<isd>
kentonv: I don't suppose you're around and can answer? ^
<kentonv>
maurer: The idea is that SturdyRef needs to be defined to contain all the information needed. Our eventual "public internet" SturdyRef definition would probably contain a DNS hostname along with a token to send to that host. Maybe even a public key.
<isd>
I'd been bouncing something like that around in my head myself. Maybe <base-64-public-key>.mydomain.example.org?
<isd>
The other shorter-term thing I'd been playing with was writing a "router" for connecting twoparty implementations in erlang; have a lookup table from <opaque-value> -> (pid, ref) and just piggyback on whatever erlang does. Might be a fun hack to get something working, though obviously limited in scope
<isd>
(and the hosts have to all trust one another, though not necessarily the other side of the two-party connections)
<isd>
kentonv: I stand corrected.
<maurer>
kentonv: Yeah, in my case I'm not as worried about security, since my network will be an intranet (very similar to an old school cluster)
<maurer>
kentonv: So is the idea that each application defines its own sturdyref format then?
<maurer>
persistent.capnp doesn't seem to define a restore() method anywhere, for example
<kentonv>
each "realm" defines a SturdyRef format and defines how to go about restoring that format.
<kentonv>
circularly, a "realm" is a context in which everyone agrees on a SturdyRef format
<maurer>
Hm, OK
<kentonv>
eventually, we'll define a "realm" for the public internet
<maurer>
And since there are no standardized realms (other than the sandstorm one)
<kentonv>
but on a private network you might have some other definition
<maurer>
if I want one for my intranet, I basically need to define my own realm and format
<kentonv>
for the moment, yes
<maurer>
OK. I think that might make more sense anyways, since I might want to make my sturdyrefs contain information on "start this service to provide this ref", which would not make sense on the open internet
<maurer>
since nobody is going to give the public permission to turn their daemons on for them :P
<kentonv>
maurer: indeed, this is exactly why we have "realms", since it's impossible to define a one-size-fits-all solution here
<maurer>
Yeah, I just didn't come across clear documentation of what's needed for a realm, and how to define one. It seems like a realm is just an implementation of the restore() method, plus a format for sturdyrefs though
<maurer>
is that accurate?
<kentonv>
yep
pie_ has joined #sandstorm
pie_ has joined #sandstorm
pie_ has quit [Changing host]
rmcclellan has joined #sandstorm
mclasen has quit [Quit: mclasen]
neynah has joined #sandstorm
neynah has quit [Client Quit]
rmcclellan has quit [Read error: Connection reset by peer]
BigShip has quit [Ping timeout: 248 seconds]
pie_ has quit [Read error: Connection reset by peer]
<Simon[m]>
which is saying (I think) that it can't find the command?
<Simon[m]>
(the 1 is what this.connection.sandstormSessionId() returns)
<Simon[m]>
(in meteor)
afuentes has joined #sandstorm
<zarvox>
Simon[m]: yeah, that appears to indicate that the executable you're referring to does not exist at that path.
<zarvox>
Simon[m]: also, FYI, matrix's multiline thing for IRC means that I do not get highlighted by usage of my nick in the long-post
<Simon[m]>
hmm to that last bit, I'll switch to IRC
<zarvox>
Simon[m]: where does that getPublicId binary live?
<simonv3_>
(oh, so that’s what that long post looks like, interesting)
<simonv3_>
it lives in /opt/app/sandstorm-integration/bin/getPublicId
<simonv3_>
It’s there in the VM, FWIW, so I wonder if this is having an issue finding the location of it from within Meteor, but since it’s an absolute path I thought that would be pretty safe?
<zarvox>
...Meteor. This is using meteor-spk, yes?
<zarvox>
or the vagrant-spk meteor stack?
<simonv3_>
vagrant-spk meteor stack
<zarvox>
Try adding that path to your .sandstorm/sandstorm-pkgdef.capnp's alwaysInclude
<zarvox>
the meteor stack, by default, produces a hermetic bundle which does not include non-meteor files
pie_ has quit [Ping timeout: 268 seconds]
<simonv3_>
Tried both alwaysInclude = [ ".", "sandstorm-integration/bin/getPublicId" ], and alwaysInclude = [ ".", "/opt/app/sandstorm-integration/bin/getPublicId" ], - neither seemed to make a difference. Is that the right structure?
<zarvox>
ahhh, the alwaysInclude includes things relative to the sourceMap(s)
<zarvox>
Try adding ( sourcePath = "/opt/app/sandstorm-integration/bin" ) to sourceMap.searchPath
<zarvox>
then, launch the executable as /getPublicId
<zarvox>
(from wherever in your code you do so)
<zarvox>
(and no change needed to alwaysInclude, since it'll include everything in /opt/app/sandstorm-integration/bin at /)
<asheesh>
zarvox: /opt/app vs opt/app
<asheesh>
I think that leading slashes lead to secret failures in this case, but am not totally sure
daemoen has joined #sandstorm
<zarvox>
asheesh: leading slash may be forbidden in alwaysInclude, but looking at other sandstorm-pkgdef.capnp's it looks like it's okay in searchPath
<simonv3_>
leading slash still produces the same error, no leading slash causes a failure during building ("No such file or directory; sourcePath = /opt/app/.sandstorm/opt/app/sandstorm-integration/bin”), which I guess means that it’s finding the folder with a leading slash. I’ll try with some variations of the executable as a name.
<simonv3_>
hmm, when I inspect the file system from within the app (using node’s fs.readdir()) I’m not seeing getPublicId there