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/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.
