Waldek -- You're a genius, adding the resolv.conf file fixes the User Data problem!! (Now I have a crash somewhere else I need to figure out, hehe)
If I were to put together a patch to automatically generate /etc/resolv.conf on successful DHCP, would it be more appropriate to put that in core/dhcp.cc? Or in libc/network/__dns.cc? And is that something that the OSv team would even want? (If not, I'll have to keep it in my personal patch collection :) ) Respectfully, Brian On Thursday, January 24, 2019 at 3:20:51 PM UTC-5, Waldek Kozaczuk wrote: > > Hi Brian, > > Sorry it took me longer than I thought. I have not forgotten about you and > I have good news for you. > > It turns out that this issue can be easily replicated (I think it is the > same issue) by having some Golang program to fetch arbitrary content using > http.Get like so: > http.Get(redirectURI) > > And it happens because Golang runtime appears to rely on presence of > /etc/resolv.conf (http://man7.org/linux/man-pages/man5/resolv.conf.5.html) > to resolve host names. I am not sure what exactly should go into it but > using the same one as for Erlang - > https://github.com/cloudius-systems/osv-apps/blob/master/erlang/default/resolv.conf > > - made this error go away. > > Also to make it also handle https://... request I had to ca-certificates > module (bunch of static files that need to be added) like so: > ./scripts/build image=golang-httpserver,ca-certificates > > Finally I am not sure if this is gonna help you with fetch cloud init data > as requests like these (I am presuming this is what client uses to fetch > cloud init from EC2 instance) > > *curl http://169.254.169.254/latest > <http://169.254.169.254/latest>/meta-data/* > > should not involve DNS. But who knows. > > I also have easy patch for these errors you might be seeing in standard > out: > syscall(): unimplemented system call 262 > > It might be that this needs to be fixed as well to make. > > If so just apply this patch to linux.cc (I will be sending patch to the > group soon): > diff --git a/linux.cc b/linux.cc > index d1cd61b7..d548db93 100644 > --- a/linux.cc > +++ b/linux.cc > @@ -420,6 +420,7 @@ long syscall(long number, ...) > SYSCALL5(epoll_pwait, int, struct epoll_event *, int, int, void*); > SYSCALL3(getrandom, char *, size_t, unsigned int); > SYSCALL2(nanosleep, const struct timespec*, struct timespec *); > + SYSCALL4(fstatat, int, const char *, struct stat *, int); > } > > debug_always("syscall(): unimplemented system call %d\n", number); > > Let me know if this helps, > Waldek > > I hope adding resolv.conf will fix your problem > On Thursday, January 17, 2019 at 12:03:33 PM UTC-5, Brian Ledbetter wrote: >> >> Thanks again for all of the help, Waldek! I've been sidetracked but am >> finally getting back around to this. :) >> >> On Tuesday, January 8, 2019 at 7:47:42 AM UTC-5, Waldek Kozaczuk wrote: >>> >>> I think you should be using HVM-based instance types, so I think you are >>> fine. I know there are certain new EC2 instance types announced in 2017 >>> that are KVM based and use ENA and NVMe drivers which OSv does not support. >>> Please see this - https://github.com/cloudius-systems/osv/issues/924. >>> >> >> Yeah, it looks like networking is working. >> >> >> >>> I have a modern version of this script and others. So if you care I can >>>> dig it up. >>>> >>> >> I've managed to cobble something together with the AWS API directly, so >> hopefully I'm good there :) >> >> >> Additionally I am not sure you are familiar with capstan tool that can >>> build OSv images Docker compose style - >>> https://github.com/cloudius-systems/osv/wiki/Build-and-run-apps-on-OSv-using-Capstan. >>> >>> You need new mikelangelo capstan - >>> https://github.com/mikelangelo-project/capstan >>> >> >> I've seen it but haven't messed with it yet. Maybe that's the way I need >> to go, I'll have to throw together a container and see how it works. >> >> >> Is it OSv cloud-init module that fails to get metadata ( >>> https://github.com/cloudius-systems/osv/blob/master/modules/cloud-init/data-source.cc) >>> >>> or your app? I wonder if your problems are Golang specific. >>> >> >> Neither sees any init data, both elements report that the internal AWS IP >> that contains host metadata is unreachable. >> >> >> >>> I might have some time this week to create an EC2 instance and try a >>> Golang app myself. Which instance type are you using - >>> https://aws.amazon.com/ec2/instance-types/? >>> >> >> I was trying with t2.micro, which I thought was the most basic and >> generic instance I could get. Is there a better option? >> >> Thanks again for all of your help! :) >> > -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
