missed libc.mo on hostmonster

585 views
Skip to first unread message

Sammi

unread,
May 4, 2011, 10:31:50 PM5/4/11
to golang-nuts
Hey folks,

I compiled a go binary file to tested it on my fedora14 box. When
I try to run it on shared hostmonster server. It says missed libc.mo
file.

I tried copy my libc.mo file into hostmonster share server. But
how can I make the go binary file use the specified libc.mo in my home
directory?

Here is the trace got from hostmonster server.

open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT
(No such file or directory)
write(2, "/home1/yunhuine/bots/vansky.bash: line 2: 32672
Killed /home1/yunhuine/bots/vansky.bot /home1/
yunhuine/bots/vansky.json\n", 137) = 137
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7fffac450824, WNOHANG, NULL) = -1 ECHILD (No child
processes)

andrey mirtchovski

unread,
May 4, 2011, 11:09:18 PM5/4/11
to Sammi, golang-nuts
you'll have to give a few more details. i just compiled and ran a
standard "hello world" on a hostmonster node quite fine (strace at the
end). hostmonster does have quite a few locales installed, though not
necessarily 'en.utf8'. i suspect, since i don't think any go program
touches locales just yet, that your troubles are caused by something
else inside your scripts or that the strace snippet you have posted
has little to do with the actual error (LOCALE parsing does result in
a lot of ENOENT errors while ascertaining the closest available file
to your locale setting).

# strace ./6.out
execve("./6.out", ["./6.out"], [/* 31 vars */]) = 0
arch_prctl(ARCH_SET_FS, 0x4b7390) = 0
rt_sigaction(SIGQUIT, {0x411b37, ~[], SA_RESTORER|SA_STACK|SA_SIGINFO,
0x411b8b}, NULL, 8) = 0
rt_sigaction(SIGILL, {0x411b37, ~[], SA_RESTORER|SA_STACK|SA_SIGINFO,
0x411b8b}, NULL, 8) = 0
rt_sigaction(SIGTRAP, {0x411b37, ~[], SA_RESTORER|SA_STACK|SA_SIGINFO,
0x411b8b}, NULL, 8) = 0
rt_sigaction(SIGABRT, {0x411b37, ~[], SA_RESTORER|SA_STACK|SA_SIGINFO,
0x411b8b}, NULL, 8) = 0
rt_sigaction(SIGBUS, {0x411b37, ~[], SA_RESTORER|SA_STACK|SA_SIGINFO,
0x411b8b}, NULL, 8) = 0
rt_sigaction(SIGFPE, {0x411b37, ~[], SA_RESTORER|SA_STACK|SA_SIGINFO,
0x411b8b}, NULL, 8) = 0
rt_sigaction(SIGSEGV, {0x411b37, ~[], SA_RESTORER|SA_STACK|SA_SIGINFO,
0x411b8b}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {0x411b8a, ~[], SA_RESTORER|SA_STACK|SA_SIGINFO,
0x411b8b}, NULL, 8) = 0
rt_sigaction(SIGSTKFLT, {0x411b37, ~[],
SA_RESTORER|SA_STACK|SA_SIGINFO, 0x411b8b}, NULL, 8) = 0
rt_sigaction(SIGSYS, {0x411b37, ~[], SA_RESTORER|SA_STACK|SA_SIGINFO,
0x411b8b}, NULL, 8) = 0
mmap(NULL, 131072, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa0ee5f1000
mmap(0xf840000000, 1048576, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf840000000
mmap(0xf83fff0000, 65536, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf83fff0000
mmap(NULL, 131072, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa0ee5d1000
mmap(NULL, 131072, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa0ee5b1000
sigaltstack({ss_sp=0xf840004000, ss_flags=0, ss_size=32768}, NULL) = 0
mmap(NULL, 1048576, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa0ee4b1000
write(1, "hello\n", 6hello
) = 6
exit_group(0) = ?

try "du -a /usr/share/locale | grep libc.mo" and set your locale to
one of the directories that pop up, perhaps that will work at least
temporarily.

yunhui song

unread,
May 4, 2011, 11:38:20 PM5/4/11
to andrey mirtchovski, golang-nuts
Thanks for the reply.

you'll have to give a few more details. Here is the full trace log.


yunh...@yunhui.net [~/bots]# strace ./vansky.bash
execve("./vansky.bash", ["./vansky.bash"], [/* 34 vars */]) = 0
brk(0)                                  = 0xe33000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8310787000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8310786000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=93690, ...}) = 0
mmap(NULL, 93690, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f831076f000
close(3)                                = 0
open("/lib64/libtermcap.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\17\240R9\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=15584, ...}) = 0
mmap(0x3952a00000, 2108688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3952a00000
mprotect(0x3952a03000, 2093056, PROT_NONE) = 0
mmap(0x3952c02000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x3952c02000
close(3)                                = 0
open("/lib64/libdl.so.2", O_RDONLY)     = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\16`P9\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=23360, ...}) = 0
mmap(0x3950600000, 2109696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3950600000
mprotect(0x3950602000, 2097152, PROT_NONE) = 0
mmap(0x3950802000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x3950802000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY)      = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\332\341O9\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1722304, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f831076e000
mmap(0x394fe00000, 3502424, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x394fe00000
mprotect(0x394ff4e000, 2097152, PROT_NONE) = 0
mmap(0x395014e000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14e000) = 0x395014e000
mmap(0x3950153000, 16728, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3950153000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f831076d000
arch_prctl(ARCH_SET_FS, 0x7f831076d6e0) = 0
mprotect(0x3950802000, 4096, PROT_READ) = 0
mprotect(0x395014e000, 16384, PROT_READ) = 0
mprotect(0x394fc1b000, 4096, PROT_READ) = 0
munmap(0x7f831076f000, 93690)           = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
open("/dev/tty", O_RDWR|O_NONBLOCK)     = 3
close(3)                                = 0
brk(0)                                  = 0xe33000
brk(0xe54000)                           = 0xe54000
getuid()                                = 1200
getgid()                                = 1196
geteuid()                               = 1200
getegid()                               = 1196
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
open("/proc/meminfo", O_RDONLY)         = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8310785000
read(3, "MemTotal:       33015100 kB\nMemF"..., 1024) = 1024
close(3)                                = 0
munmap(0x7f8310785000, 4096)            = 0
rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGCHLD, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigaction(SIGQUIT, {SIG_IGN, [], SA_RESTORER, 0x394fe302d0}, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, 8) = 0
uname({sys="Linux", node="host96.hostmonster.com", ...}) = 0
stat("/home1/yunhuine/bots", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getpid()                                = 29184
getppid()                               = 29183
getpgrp()                               = 29183
rt_sigaction(SIGCHLD, {0x436080, [], SA_RESTORER, 0x394fe302d0}, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
open("./vansky.bash", O_RDONLY)         = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7ffff9bfcaa0) = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
read(3, "#!/bin/bash\n/home1/yunhuine/bots"..., 80) = 80
lseek(3, 0, SEEK_SET)                   = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0
dup2(3, 255)                            = 255
close(3)                                = 0
fcntl(255, F_SETFD, FD_CLOEXEC)         = 0
fcntl(255, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
fstat(255, {st_mode=S_IFREG|0755, st_size=111, ...}) = 0
lseek(255, 0, SEEK_CUR)                 = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
read(255, "#!/bin/bash\n/home1/yunhuine/bots"..., 111) = 111
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
lseek(255, -34, SEEK_CUR)               = 77
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f831076d770) = 29185
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x436c60, [], SA_RESTORER, 0x394fe302d0}, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, 8) = 0
wait4(-1, 0x7ffff9bfca04, 0, NULL)      = ? ERESTARTSYS (To be restarted)
--- SIGWINCH (Window changed) @ 0 (0) ---
wait4(-1, 0x7ffff9bfca04, 0, NULL)      = ? ERESTARTSYS (To be restarted)
--- SIGWINCH (Window changed) @ 0 (0) ---
wait4(-1, result=1578

result=1579

result=1580

^[[Bresult=1581

result=1582

[{WIFSIGNALED(s) && WTERMSIG(s) == SIGKILL}], 0, NULL) = 29185
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8310785000
write(2, "./vansky.bash: line 2: 29185 Kil"..., 118./vansky.bash: line 2: 29185 Killed                  /home1/yunhuine/bots/vansky.bot /home1/yunhuine/bots/vansky.json
) = 118
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7ffff9bfc564, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff)        = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, {0x436c60, [], SA_RESTORER, 0x394fe302d0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
read(255, "rm -f /home1/yunhuine/bots/*.htm"..., 111) = 34
open("/home1/yunhuine/bots/", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
getdents(3, /* 21 entries */, 32768)    = 720
getdents(3, /* 0 entries */, 32768)     = 0
close(3)                                = 0
stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/ramdisk/bin/rm", 0x7ffff9bfc8c0) = -1 ENOENT (No such file or directory)
stat("/usr/sec/bin/rm", 0x7ffff9bfc8c0) = -1 ENOENT (No such file or directory)
stat("/usr/local/jdk/bin/rm", 0x7ffff9bfc8c0) = -1 ENOENT (No such file or directory)
stat("/ramdisk/bin/rm", 0x7ffff9bfc8c0) = -1 ENOENT (No such file or directory)
stat("/usr/lib64/qt-3.3/bin/rm", 0x7ffff9bfc8c0) = -1 ENOENT (No such file or directory)
stat("/usr/kerberos/bin/rm", 0x7ffff9bfc8c0) = -1 ENOENT (No such file or directory)
stat("/usr/bin/rm", {st_mode=S_IFREG|0755, st_size=45216, ...}) = 0
access("/usr/bin/rm", X_OK)             = 0
access("/usr/bin/rm", R_OK)             = 0
stat("/usr/bin/rm", {st_mode=S_IFREG|0755, st_size=45216, ...}) = 0
access("/usr/bin/rm", X_OK)             = 0
access("/usr/bin/rm", R_OK)             = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f831076d770) = 29992
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x436c60, [], SA_RESTORER, 0x394fe302d0}, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 29992
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
wait4(-1, 0x7ffff9bfc564, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn(0xffffffffffffffff)        = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x394fe302d0}, {0x436c60, [], SA_RESTORER, 0x394fe302d0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
read(255, "", 111)                      = 0
exit_group(0)                           = ?


try "du -a /usr/share/locale | grep libc.mo" and set your locale to
one of the directories that pop up, perhaps that will work at least
temporarily.

yunh...@yunhui.net [~/bots]# du -a /usr/share/locale | grep libc.mo
112 /usr/share/locale/ko/LC_MESSAGES/libc.mo
88 /usr/share/locale/pt_BR/LC_MESSAGES/libc.mo
4 /usr/share/locale/rw/LC_MESSAGES/libc.mo
116 /usr/share/locale/gl/LC_MESSAGES/libc.mo
136 /usr/share/locale/tr/LC_MESSAGES/libc.mo
84 /usr/share/locale/el/LC_MESSAGES/libc.mo
132 /usr/share/locale/sv/LC_MESSAGES/libc.mo
128 /usr/share/locale/de/LC_MESSAGES/libc.mo
92 /usr/share/locale/cs/LC_MESSAGES/libc.mo
112 /usr/share/locale/da/LC_MESSAGES/libc.mo
120 /usr/share/locale/sk/LC_MESSAGES/libc.mo
72 /usr/share/locale/nb/LC_MESSAGES/libc.mo
108 /usr/share/locale/hu/LC_MESSAGES/libc.mo
132 /usr/share/locale/pl/LC_MESSAGES/libc.mo
36 /usr/share/locale/it/LC_MESSAGES/libc.mo
116 /usr/share/locale/ja/LC_MESSAGES/libc.mo
48 /usr/share/locale/hr/LC_MESSAGES/libc.mo
124 /usr/share/locale/es/LC_MESSAGES/libc.mo
124 /usr/share/locale/ca/LC_MESSAGES/libc.mo
132 /usr/share/locale/ru/LC_MESSAGES/libc.mo
116 /usr/share/locale/fi/LC_MESSAGES/libc.mo
124 /usr/share/locale/fr/LC_MESSAGES/libc.mo
32 /usr/share/locale/be/LC_MESSAGES/libc.mo
136 /usr/share/locale/nl/LC_MESSAGES/libc.mo
76 /usr/share/locale/zh_CN/LC_MESSAGES/libc.mo
112 /usr/share/locale/zh_TW/LC_MESSAGES/libc.mo
4 /usr/share/locale/en_GB/LC_MESSAGES/libc.mo
 
It looks like that is not because of miss libc.mo.  I might send you guys wrong trace info. Sorry about the confusing log.

Anyway, any clues can i get to find the real reason, why my script only works on my fedora14 box?

Thanks,
Sammi

andrey mirtchovski

unread,
May 5, 2011, 12:13:11 AM5/5/11
to yunhui song, golang-nuts
After some private discussions it appears to be a bug with the
program, not a bug with the Go Language.
Reply all
Reply to author
Forward
0 new messages