Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error opening terminal: xterm-256color #46

Closed
colemickens opened this issue Feb 23, 2018 · 13 comments
Closed

Error opening terminal: xterm-256color #46

colemickens opened this issue Feb 23, 2018 · 13 comments

Comments

@colemickens
Copy link

colemickens commented Feb 23, 2018

I don't seem to have issues with other applications but grv does not want to work for me:

$ mkdir temp
$ cd temp

$ grv
FATAL: Unable to initialise grv: Unable to find a git repository in . or any of its parent directories

$ git init
Initialized empty Git repository in /home/cole/temptemptemp/.git/

$ grv
Error opening terminal: xterm-256color.
@rgburke
Copy link
Owner

rgburke commented Feb 26, 2018

This suggests that there is no terminfo entry for xterm-256color. If you run infocmp xterm-256color does it produce any output?

Could you try running TERM=xterm grv and see if it is able to successfully start? I would recommend running GRV on a repository with a few commits in it otherwise I don't think it will do much.

Also just out of interest, which OS are you using?

@colemickens
Copy link
Author

$ TERM=xterm grv seems to work fine. I have output for infocmp xterm-256color, though:

$ infocmp xterm-256color

#	Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-256color
xterm-256color|xterm with 256 colors,
	am, bce, ccc, km, mc5i, mir, msgr, npc, xenl,
	colors#0x100, cols#80, it#8, lines#24, pairs#0x10000,
	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
	clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=\r,
	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
	cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
	cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
	dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
	el1=\E[1K, flash=\E[?5h$<100/>\E[?5l, home=\E[H,
	hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
	il=\E[%p1%dL, il1=\E[L, ind=\n, indn=\E[%p1%dS,
	initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
	invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kDC=\E[3;2~,
	kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~, kLFT=\E[1;2D,
	kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C, kb2=\EOE, kbs=^H,
	kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
	kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
	kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q,
	kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
	kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
	kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
	kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S,
	kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~,
	kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~,
	kf35=\E[23;5~, kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q,
	kf39=\E[1;6R, kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~,
	kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
	kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
	kf48=\E[24;6~, kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q,
	kf51=\E[1;3R, kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
	kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
	kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
	kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
	kf8=\E[19~, kf9=\E[20~, khome=\EOH, kich1=\E[2~,
	kind=\E[1;2B, kmous=\E[<, knp=\E[6~, kpp=\E[5~,
	kri=\E[1;2A, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
	memu=\Em, oc=\E]104\007, op=\E[39;49m, rc=\E8,
	rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
	rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E(B, rmam=\E[?7l,
	rmcup=\E[?1049l\E[23;0;0t, rmir=\E[4l, rmkx=\E[?1l\E>,
	rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m,
	rs1=\Ec\E]104\007, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
	setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
	setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
	sgr0=\E(B\E[m, sitm=\E[3m, smacs=\E(0, smam=\E[?7h,
	smcup=\E[?1049h\E[22;0;0t, smir=\E[4h, smkx=\E[?1h\E=,
	smm=\E[?1034h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
	u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c,
	u9=\E[c, vpa=\E[%i%p1%dd,

@rgburke
Copy link
Owner

rgburke commented Feb 26, 2018

Ok, that's interesting. Do any other ncurses based programs display the same error? For example, does nano show the same error or does it work as expected?

@colemickens
Copy link
Author

Nano, vim, etc all behave as expected (or they're gracefully degrading, but not that I can tell). I'm not sure if it's related, but under really rare circumstances, tmux will work itself into a bind and when I try to tmux attach it complains about no terminfo, but this appears to be a tmux bug and goes away when you kill the session and restart.

However, this grv behavior happens 100% of the time, and repros readily even when tmux is not running.

@rgburke
Copy link
Owner

rgburke commented Feb 27, 2018

It's hard to determine what GRV is doing that causes this error. The Error opening terminal: xterm-256color. error is generated by ncurses in the initscr method, a snippet of which is shown below:

if (newterm(name, stdout, stdin) == 0) {
    fprintf(stderr, "Error opening terminal: %s.\n", name);
    ExitProgram(EXIT_FAILURE);
}

The initscr method is the first ncurses method that must be called and we see above that when newterm fails it prints the error message and exits. All ncurses programs call this method early on in their lifetimes including nano. Therefore why this succeeds for nano and not GRV is unclear.

Googling the error Error opening terminal: xterm-256color generally suggests that there is a terminfo error and the general solutions suggest setting TERM=xterm. I'm not sure what else to suggest beyond that.

@rgburke
Copy link
Owner

rgburke commented Mar 18, 2018

Closing this issue for the following reasons:

  • There is a workaround setting TERM=xterm.
  • No one else has reported the same issue.
  • I can't reproduce it using tmux.

As mentioned previously, this is likely to be specific to to the setup of your system in some way.

@rgburke rgburke closed this as completed Mar 18, 2018
@gnumoksha
Copy link

@rgburke I have the same issue.

$ ./grv
Error opening terminal: xterm-256color.

TERM=xterm ./grv works.

Some information about the environment:

$ infocmp xterm-256color
#	Reconstructed via infocmp from file: /lib/terminfo/x/xterm-256color
xterm-256color|xterm with 256 colors,
	am, bce, ccc, km, mc5i, mir, msgr, npc, xenl,
	colors#0x100, cols#80, it#8, lines#24, pairs#0x10000,
	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
	clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=\r,
	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
	cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
	cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
	dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
	el1=\E[1K, flash=\E[?5h$<100/>\E[?5l, home=\E[H,
	hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
	il=\E[%p1%dL, il1=\E[L, ind=\n, indn=\E[%p1%dS,
	initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
	invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kDC=\E[3;2~,
	kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~, kLFT=\E[1;2D,
	kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C, kb2=\EOE, kbs=^?,
	kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
	kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
	kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q,
	kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
	kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
	kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
	kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S,
	kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~,
	kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~,
	kf35=\E[23;5~, kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q,
	kf39=\E[1;6R, kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~,
	kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
	kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
	kf48=\E[24;6~, kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q,
	kf51=\E[1;3R, kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
	kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
	kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
	kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
	kf8=\E[19~, kf9=\E[20~, khome=\EOH, kich1=\E[2~,
	kind=\E[1;2B, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
	kri=\E[1;2A, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
	memu=\Em, oc=\E]104\007, op=\E[39;49m, rc=\E8,
	rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
	rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E(B, rmam=\E[?7l,
	rmcup=\E[?1049l\E[23;0;0t, rmir=\E[4l, rmkx=\E[?1l\E>,
	rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m,
	rs1=\Ec\E]104\007, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
	setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
	setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
	sgr0=\E(B\E[m, sitm=\E[3m, smacs=\E(0, smam=\E[?7h,
	smcup=\E[?1049h\E[22;0;0t, smir=\E[4h, smkx=\E[?1h\E=,
	smm=\E[?1034h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
	u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c,
	u9=\E[c, vpa=\E[%i%p1%dd,
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux testing (buster)
Release:	testing
Codename:	buster

$ gnome-terminal --version
# GNOME Terminal 3.28.0 using VTE 0.52.0 +GNUTLS

$ zsh --version
zsh 5.5.1 (x86_64-debian-linux-gnu)

Also I'm using latest version of oh-my-zsh (commit 6ace3cd18dd3cbc0e2631fa98051194b703fe4d7).

I've noticed this occurs with bash too, even without a .bashrc.

$ bash --version
GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

@rgburke
Copy link
Owner

rgburke commented Jun 6, 2018

@gnumoksha Thanks for the info. Could you run grv under strace and upload the output here. For example:

strace -o grvout.strace grv

will produce a grvout.strace log file. My hope is to see if any of the system calls fail and to compare the output with the output I get from running grv under strace locally.

@gnumoksha
Copy link

@rgburke

execve("/tmp/temp/grv", ["grv"], 0x7ffec7dd4550 /* 51 vars */) = 0
brk(NULL)                               = 0x1447000
brk(0x1448240)                          = 0x1448240
arch_prctl(ARCH_SET_FS, 0x1447900)      = 0
uname({sysname="Linux", nodename="bombadil", ...}) = 0
set_tid_address(0x1447bd0)              = 16378
set_robust_list(0x1447be0, 24)          = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x6e5d10, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x6e5da0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
readlink("/proc/self/exe", "/tmp/temp/grv", 4096) = 13
brk(0x1469240)                          = 0x1469240
brk(0x146a000)                          = 0x146a000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
sched_getaffinity(0, 8192, [0, 1, 2, 3]) = 64
mmap(0xc000000000, 65536, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc000000000
munmap(0xc000000000, 65536)             = 0
mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f30fb4b1000
mmap(0xc420000000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc420000000
mmap(0xc41fff8000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc41fff8000
mmap(0xc000000000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc000000000
mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f30fb4a1000
mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f30fb491000
rt_sigprocmask(SIG_SETMASK, NULL, [], 8) = 0
sigaltstack(NULL, {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
sigaltstack({ss_sp=0xc420002000, ss_flags=0, ss_size=32672}, NULL) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
gettid()                                = 16378
rt_sigaction(SIGHUP, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGHUP, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGINT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGQUIT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGILL, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGILL, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGTRAP, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTRAP, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGABRT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGABRT, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGBUS, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGFPE, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGFPE, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGUSR1, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGUSR1, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGSEGV, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGUSR2, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGUSR2, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGPIPE, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGALRM, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGALRM, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGTERM, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGSTKFLT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSTKFLT, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGCHLD, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGURG, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGURG, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGXCPU, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGXCPU, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGXFSZ, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGXFSZ, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGVTALRM, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGVTALRM, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGPROF, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGPROF, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGWINCH, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGWINCH, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGIO, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGIO, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGPWR, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGPWR, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGSYS, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSYS, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRTMIN, NULL, {sa_handler=0x6e5d10, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x6e5370}, 8) = 0
rt_sigaction(SIGRTMIN, NULL, {sa_handler=0x6e5d10, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x6e5370}, 8) = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x6e5d10, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_1, NULL, {sa_handler=0x6e5da0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, 8) = 0
rt_sigaction(SIGRT_1, NULL, {sa_handler=0x6e5da0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x6e5da0, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_2, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_2, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_3, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_3, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_4, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_4, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_5, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_5, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_6, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_6, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_7, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_7, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_8, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_8, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_9, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_9, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_10, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_10, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_11, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_11, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_12, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_12, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_13, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_13, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_14, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_14, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_15, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_15, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_16, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_16, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_17, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_17, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_18, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_18, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_19, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_19, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_20, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_20, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_21, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_21, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_22, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_22, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_23, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_23, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_24, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_24, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_25, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_25, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_26, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_26, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_27, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_27, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_28, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_28, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_29, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_29, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_30, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_30, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_31, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_31, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigaction(SIGRT_32, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGRT_32, {sa_handler=0x454c20, sa_mask=~[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x6e5370}, NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f30fac90000
mprotect(0x7f30fac91000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7f30fb48fdf0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f30fb4909d0, tls=0x7f30fb490700, child_tidptr=0x7f30fb4909d0) = 16379
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f30fa48f000
mprotect(0x7f30fa490000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7f30fac8edf0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f30fac8f9d0, tls=0x7f30fac8f700, child_tidptr=0x7f30fac8f9d0) = 16380
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f30f948d000
mprotect(0x7f30f948e000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x7f30f9c8cdf0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f30f9c8d9d0, tls=0x7f30f9c8d700, child_tidptr=0x7f30f9c8d9d0) = 16382
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0xc420032d10, FUTEX_WAKE, 1)      = 1
readlinkat(AT_FDCWD, "/proc/self/exe", "/tmp/temp/grv", 128) = 13
mmap(NULL, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f30f944d000
mmap(NULL, 1439992, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f30f92ed000
openat(AT_FDCWD, "/proc/sys/net/core/somaxconn", O_RDONLY|O_CLOEXEC) = 3
read(3, "128\n", 4096)                  = 4
read(3, "", 4092)                       = 0
close(3)                                = 0
socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 3
close(3)                                = 0
socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP) = 3
setsockopt(3, SOL_IPV6, IPV6_V6ONLY, [1], 4) = 0
bind(3, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0}, 28) = 0
socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP) = 4
setsockopt(4, SOL_IPV6, IPV6_V6ONLY, [0], 4) = 0
bind(4, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0}, 28) = 0
close(4)                                = 0
close(3)                                = 0
futex(0xc45bc4, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(0xc420100000, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc420100000
mmap(0xc41fff0000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xc41fff0000
openat(AT_FDCWD, "/etc/localtime", O_RDONLY) = 3
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0\0\0\3\0\0\0\0"..., 4096) = 2016
read(3, "", 4096)                       = 0
close(3)                                = 0
lstat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/tmp/temp", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/tmp/temp/.git", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=4096, ...}) = 0
lstat("/tmp/temp", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/tmp/temp/.git", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/tmp/temp/.git/.git", 0x7ffd09f517b0) = -1 ENOENT (No such file or directory)
stat("/tmp/temp/.git", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/tmp/temp/.git/commondir", 0x7ffd09f515b0) = -1 ENOENT (No such file or directory)
stat("/tmp/temp/.git/HEAD", {st_mode=S_IFREG|0644, st_size=23, ...}) = 0
stat("/tmp/temp/.git/objects/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/tmp/temp/.git/refs/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/tmp/temp/.git/gitdir", 0x7ffd09f515a0) = -1 ENOENT (No such file or directory)
access("/home/tobias/.gitconfig", F_OK) = -1 ENOENT (No such file or directory)
access("/home/tobias/.config/git/config", F_OK) = -1 ENOENT (No such file or directory)
access("/etc/gitconfig", F_OK)          = -1 ENOENT (No such file or directory)
stat("/tmp/temp/.git/config", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
stat("/tmp/temp/.git/config", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/config", O_RDONLY|O_CLOEXEC) = 3
read(3, "[core]\n\trepositoryformatversion "..., 92) = 92
close(3)                                = 0
stat("/home/tobias/.gitconfig", 0x7ffd09f51690) = -1 ENOENT (No such file or directory)
stat("/home/tobias/.gitconfig", 0x7ffd09f51520) = -1 ENOENT (No such file or directory)
stat("/tmp/temp/.git/config", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/config", O_RDONLY|O_CLOEXEC) = 3
read(3, "[core]\n\trepositoryformatversion "..., 92) = 92
close(3)                                = 0
stat("/home/tobias/.gitconfig", 0x7ffd09f51680) = -1 ENOENT (No such file or directory)
stat("/tmp/temp/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
futex(0xc420064110, FUTEX_WAKE, 1)      = 1
access("/tmp/temp/.git/index", F_OK)    = 0
access("/tmp/temp/.git/index", F_OK)    = 0
stat("/tmp/temp/.git/index", {st_mode=S_IFREG|0644, st_size=137, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/index", O_RDONLY|O_CLOEXEC) = 3
lseek(3, -20, SEEK_END)                 = 117
read(3, "s\347g\217\263\271\36\315\242\377NkVD\274n(\335\203\234", 20) = 20
close(3)                                = 0
stat("/tmp/temp/.git/index", {st_mode=S_IFREG|0644, st_size=137, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/index", O_RDONLY|O_CLOEXEC) = 3
read(3, "DIRC\0\0\0\2\0\0\0\1[\34\201:\30l\34\366[\34\201:\30l\34\366\0\0\375\4"..., 137) = 137
close(3)                                = 0
stat("/tmp/temp/.git/config", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/config", O_RDONLY|O_CLOEXEC) = 3
read(3, "[core]\n\trepositoryformatversion "..., 92) = 92
close(3)                                = 0
stat("/home/tobias/.gitconfig", 0x7ffd09f516d0) = -1 ENOENT (No such file or directory)
stat("/tmp/temp/.git/config", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/config", O_RDONLY|O_CLOEXEC) = 3
read(3, "[core]\n\trepositoryformatversion "..., 92) = 92
close(3)                                = 0
stat("/tmp/temp/.git/config", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/config", O_RDONLY|O_CLOEXEC) = 3
read(3, "[core]\n\trepositoryformatversion "..., 92) = 92
close(3)                                = 0
stat("/home/tobias/.gitconfig", 0x7ffd09f516d0) = -1 ENOENT (No such file or directory)
stat("/tmp/temp/.git/config", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/config", O_RDONLY|O_CLOEXEC) = 3
read(3, "[core]\n\trepositoryformatversion "..., 92) = 92
close(3)                                = 0
stat("/home/tobias/.gitconfig", 0x7ffd09f51280) = -1 ENOENT (No such file or directory)
stat("/tmp/temp/.git/config", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/config", O_RDONLY|O_CLOEXEC) = 3
read(3, "[core]\n\trepositoryformatversion "..., 92) = 92
close(3)                                = 0
stat("/home/tobias/.gitconfig", 0x7ffd09f511e0) = -1 ENOENT (No such file or directory)
stat("/tmp/temp/.git/HEAD", {st_mode=S_IFREG|0644, st_size=23, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/HEAD", O_RDONLY|O_CLOEXEC) = 3
read(3, "ref: refs/heads/master\n", 23) = 23
close(3)                                = 0
stat("/tmp/temp/.git/refs/heads/master", {st_mode=S_IFREG|0644, st_size=41, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/refs/heads/master", O_RDONLY|O_CLOEXEC) = 3
read(3, "8bbd2a705a6eece3992c765f7c03b371"..., 41) = 41
close(3)                                = 0
stat("/tmp/temp/.git/objects/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/tmp/temp/.git/objects/pack", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/tmp/temp/.git/objects/pack", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/tmp/temp/.git/objects/pack/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getdents(3, /* 2 entries */, 32768)     = 48
getdents(3, /* 0 entries */, 32768)     = 0
close(3)                                = 0
access("/tmp/temp/.git/objects/info/alternates", F_OK) = -1 ENOENT (No such file or directory)
access("/tmp/temp/.git/objects/8b/bd2a705a6eece3992c765f7c03b371cf916e07", F_OK) = 0
stat("/tmp/temp/.git/objects/8b/bd2a705a6eece3992c765f7c03b371cf916e07", {st_mode=S_IFREG|0444, st_size=127, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/objects/8b/bd2a705a6eece3992c765f7c03b371cf916e07", O_RDONLY|O_CLOEXEC) = 3
read(3, "x\1\235\215\313\t\0021\20@=\247\212i@\231\3746\t,\342\311\6\264\201Iv\26sX\3\311"..., 127) = 127
close(3)                                = 0
access("/tmp/temp/.git/objects/f9/3e3a1a1525fb5b91020da86e44810c87a2d7bc", F_OK) = 0
stat("/tmp/temp/.git/objects/f9/3e3a1a1525fb5b91020da86e44810c87a2d7bc", {st_mode=S_IFREG|0444, st_size=54, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/objects/f9/3e3a1a1525fb5b91020da86e44810c87a2d7bc", O_RDONLY|O_CLOEXEC) = 3
read(3, "x\1+)JMU06g040031Q\10rut\361u\325\313Max6\367\321\354"..., 54) = 54
close(3)                                = 0
access("/tmp/temp/.git/index", F_OK)    = 0
stat("/tmp/temp/.git/index", {st_mode=S_IFREG|0644, st_size=137, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/index", O_RDONLY|O_CLOEXEC) = 3
lseek(3, -20, SEEK_END)                 = 117
read(3, "s\347g\217\263\271\36\315\242\377NkVD\274n(\335\203\234", 20) = 20
close(3)                                = 0
stat("/tmp/temp/.git/config", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/config", O_RDONLY|O_CLOEXEC) = 3
read(3, "[core]\n\trepositoryformatversion "..., 92) = 92
close(3)                                = 0
stat("/home/tobias/.gitconfig", 0x7ffd09f515b0) = -1 ENOENT (No such file or directory)
stat("/tmp/temp/.git/config", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/config", O_RDONLY|O_CLOEXEC) = 3
read(3, "[core]\n\trepositoryformatversion "..., 92) = 92
close(3)                                = 0
stat("/home/tobias/.gitconfig", 0x7ffd09f51560) = -1 ENOENT (No such file or directory)
access("/home/tobias/.config/git/attributes", F_OK) = -1 ENOENT (No such file or directory)
access("/home/tobias/.config/git/ignore", F_OK) = -1 ENOENT (No such file or directory)
stat("/tmp/temp/.gitignore", 0x7ffd09f51590) = -1 ENOENT (No such file or directory)
stat("/tmp/temp/.git/info/exclude", {st_mode=S_IFREG|0644, st_size=240, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/info/exclude", O_RDONLY|O_CLOEXEC) = 3
read(3, "# git ls-files --others --exclud"..., 240) = 240
close(3)                                = 0
open("/tmp/temp", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getdents(3, /* 6 entries */, 32768)     = 168
lstat("/tmp/temp/.git", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/tmp/temp/grv", {st_mode=S_IFREG|0755, st_size=14474200, ...}) = 0
lstat("/tmp/temp/README.md", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
lstat("/tmp/temp/grvout.strace", {st_mode=S_IFREG|0644, st_size=27221, ...}) = 0
getdents(3, /* 0 entries */, 32768)     = 0
close(3)                                = 0
stat("/tmp/temp/.git/config", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
openat(AT_FDCWD, "/tmp/temp/.git/config", O_RDONLY|O_CLOEXEC) = 3
read(3, "[core]\n\trepositoryformatversion "..., 92) = 92
close(3)                                = 0
stat("/home/tobias/.gitconfig", 0x7ffd09f515c0) = -1 ENOENT (No such file or directory)
stat("/tmp/temp/grv", {st_mode=S_IFREG|0755, st_size=14474200, ...}) = 0
stat("/tmp/temp/grvout.strace", {st_mode=S_IFREG|0644, st_size=27793, ...}) = 0
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1687472, ...}) = 0
mmap(NULL, 1687472, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f30f9151000
close(3)                                = 0
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2995, ...}) = 0
read(3, "# Locale name alias data base.\n#"..., 4096) = 2995
read(3, "", 4096)                       = 0
close(3)                                = 0
open("/usr/lib/locale/en_US.UTF-8/LC_TIME", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_TIME", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en_US/LC_TIME", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en.UTF-8/LC_TIME", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en.utf8/LC_TIME", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/en/LC_TIME", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
stat("/home/tobias/.terminfo", 0x14514f0) = -1 ENOENT (No such file or directory)
stat("/etc/terminfo", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/lib/terminfo", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/share/terminfo", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
time(NULL)                              = 1528596504 (2018-06-09T23:08:24-0300)
access("/etc/terminfo/x/xterm-256color", R_OK) = -1 ENOENT (No such file or directory)
access("/lib/terminfo/x/xterm-256color", R_OK) = 0
openat(AT_FDCWD, "/lib/terminfo/x/xterm-256color", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=3555, ...}) = 0
read(3, "\36\2%\0&\0\17\0\235\1\2\6xterm-256color|xterm"..., 4096) = 3555
read(3, "", 4096)                       = 0
close(3)                                = 0
access("/usr/share/terminfo/x/xterm-256color", R_OK) = -1 ENOENT (No such file or directory)
write(2, "Error opening terminal: xterm-25"..., 40) = 40
exit_group(1)                           = ?
+++ exited with 1 +++

The dump was generated in other computer but with similar environment.
The git repository in under /tmp/temp/ and file /lib/terminfo/x/xterm-256color returns /lib/terminfo/x/xterm-256color: Compiled 32-bit terminfo entry "xterm-256color"

@rgburke
Copy link
Owner

rgburke commented Jun 10, 2018

@gnumoksha Thanks for providing the strace output. The issue should now be fixed. Please download a fresh copy of the grv binary:

wget -O grv /~https://github.com/rgburke/grv/releases/download/v0.1.3/grv_v0.1.3_linux64
chmod +x ./grv
./grv -repoFilePath /path/to/repo

The following is an explanation of the issue.

The lines below hinted at what the problem was:

access("/lib/terminfo/x/xterm-256color", R_OK) = 0
openat(AT_FDCWD, "/lib/terminfo/x/xterm-256color", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=3555, ...}) = 0
read(3, "\36\2%\0&\0\17\0\235\1\2\6xterm-256color|xterm"..., 4096) = 3555
read(3, "", 4096)                       = 0
close(3)                                = 0
access("/usr/share/terminfo/x/xterm-256color", R_OK) = -1 ENOENT (No such file or directory)

The ncurses library statically compiled into the released version of grv was finding the terminfo definition at /lib/terminfo/x/xterm-256color but was rejecting it, as we see it then tried another path /usr/share/terminfo/x/xterm-256color.
Looking into it further it appears that ncurses 6.1 altered the terminfo format. So while ncurses 6.1 can handle this new terminfo format and the old formats, older versions of ncurses cannot. The released version of grv was originally compiled on Ubuntu 17.10 which did not have a new enough version of ncurses to handle updated terminfo format. However Debian buster is using a new enough version of ncurses that has terminfo entries in this new format.
Therefore to resolve this grv has been recompiled using an updated version of ncurses which should now work correctly.

@gnumoksha
Copy link

@rgburke it worked!

Now I have the issue #39 with some repositories.

@rgburke
Copy link
Owner

rgburke commented Jun 10, 2018

@gnumoksha Thanks for confirming it works.

Issue #39 is due to a bug in libgit2 for which libgit2/libgit2#4528 was raised. However it doesn't seem like it will be fixed soon as there doesn't appear to be a straight forward solution. So grv may have to revert to running a git diff and parsing the output. I wanted to avoid using using git cli tools and parsing their output. However if there is no development soon on this issue from the libgit2 side then I will have no choice as #39 has been open for a while now.

@gnumoksha
Copy link

@rgburke I see. But it is a nice project, good job!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants