Skip to content

Instantly share code, notes, and snippets.

@lucaswerkmeister
Created August 11, 2017 15:40
Show Gist options
  • Save lucaswerkmeister/50cfb49a5be6ddfa1172172048001147 to your computer and use it in GitHub Desktop.
Save lucaswerkmeister/50cfb49a5be6ddfa1172172048001147 to your computer and use it in GitHub Desktop.
dspinellis/dgsh#90 debug output
10670: bash: pgrp: 10670, dgshpath: /usr/local/libexec/dgsh
10670: command: {{ cat & }} | cat
10670: Check if shell is dgsh. dgsh: 1
10670: dgsh_in: 0, dgsh_out: 0
10670: handle command
10670: parse and execute
10670: go yyparse()
10670: dgsh command
10670: pipe_in: -1, pipe_out: -1, asynchronous: 0
10670: dgsh_nest_level: -1, command: {{ cat & }} | cat, command type: 6
10670: command type: 6, command: {{ cat & }} | cat
10670: cm_connection case
10670: command type: 6, command: {{ cat & }} | cat, compatible: 1
10670: command type: 10, command: {{ cat & }}, compatible: 1
10670: command type: 4, command: cat, compatible: 1
10670: pipe_in: -1, pipe_out: -1
10670: Created socketpair 3 -- 4
10670: Check if wrapping is required
10670: go execute_command_internal
10670: pipe_in: -1, pipe_out: 4, asynchronous: 0
10670: dgsh_nest_level: -1, should be compound command: {{ cat & }}
10670: go make_child()
10670: make child paren pid: 10672
10670: Check if wrapping is required
10670: pipe_in: 3, pipe_out: -1, asynchronous: 0
10670: dgsh_nest_level: -1, command: cat, command type: 4
10670: command type: 4, command: cat
10670: cm_simple case
10670: pipe_in: 3, pipe_out: -1, async: 0
10670: dofork?: 1
10670: for simple command pipe_in: 3, pipe_out: -1, dgsh_in: 0, dgsh_out: 0, executing_function: 0
10670: set DGSH_IN=1
10670: set_dgsh_path(), path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin, dgshpath: /usr/local/libexec/dgsh
10670: set_dgsh_path(): after prepending, path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10672: make child paren pid: 0
10672: go execute_in_subshell()
10672: pipe_in: -1, pipe_out: 4, should_redir_stdin: 0
10670: after putenv pipe_in: 3, pipe_out: -1, dgsh_in: 0, dgsh_out: 0, executing_function: 0
10672: user_subshell: 0, asynchronous: 0
10672: subshell_environment & SUBSHELL_PIPE = 16
10672: close fd 3
10672: CONCENTRATOR ZONE
10672: pipe_in: -1, pipe_out: 4
10672: command type: 6, command: cat &, n: 0
10672: command type: 4, command: cat, n: 0
10672: 1 procs in dgsh group
10672: Inject wait command in multipipe block
10672: created concentrator command: dgsh-conc -o -n 1
10672: Created socketpair 3 -- 5
10672: go execute concentrator command: dgsh-conc -o -n 1
10672: noinput set to: 1
10672: set scatter conc 0 fd to 5
10672: set scatter proc 0 fd to 3
10672: pipe_in: -1, pipe_out: -3, asynchronous: 0
10672: dgsh_nest_level: 0, command: dgsh-conc -o -n 1, command type: 4
10672: output_type: 1, outsize: 1, insize: 0, out_index: 0,in_index: 0, pipe_in: -1, pipe_out: -3
10672: dgsh_procs: pipe_in: -1, pipe_out: -3, out_index: 0, in_index: 0
10672: command type: 4, command: dgsh-conc -o -n 1
10672: cm_simple case
10672: pipe_in: -1, pipe_out: -3, async: 0
10672: dofork?: 1
10672: for simple command pipe_in: -1, pipe_out: -3, dgsh_in: 0, dgsh_out: 0, executing_function: 0
10672: set DGSH_IN=1
10672: set_dgsh_path(), path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin, dgshpath: /usr/local/libexec/dgsh
10672: set_dgsh_path(): after prepending, path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10672: set DGSH_OUT=1
10672: set_dgsh_path(), path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin, dgshpath: /usr/local/libexec/dgsh
10672: after putenv pipe_in: -1, pipe_out: -3, dgsh_in: 0, dgsh_out: 0, executing_function: 0
10670: Return 0 from fork
10673: go do piping after make_child()
10673: pipe_in: 3, pipe_out: -1
10673: dup-close fd 3 to get stdin
10672: Return 0 from fork
10672: Completed waiting for pid: 10674
10672: exit switch for command: 4
10672: exec_result: 0
10672: last command exit value: 0
10672: dgsh-conc output (output type: 1) at level 0 returned 0
10672: created concentrator command: dgsh-conc -i 1
10673: Path to command: /usr/local/libexec/dgsh/cat
10672: Created socketpair 5 -- 6
10672: go execute concentrator command: dgsh-conc -i 1
10672: set gather conc 0 fd to 5
10672: set gather proc 0 fd to 6
10672: pipe_in: -3, pipe_out: 4, asynchronous: 0
10672: dgsh_nest_level: 0, command: dgsh-conc -i 1, command type: 4
10673: Command /usr/local/libexec/dgsh/cat is in the dgsh path
10672: output_type: 2, outsize: 1, insize: 1, out_index: 0,in_index: 0, pipe_in: -3, pipe_out: 4
10672: dgsh_procs: pipe_in: -3, pipe_out: 4, out_index: 0, in_index: 0
10673: go execute disk command
10672: Unset dgshpath from path
10672: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10672: dgshpath not in path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10672: command type: 4, command: dgsh-conc -i 1
10674: go do piping after make_child()
10672: cm_simple case
10674: pipe_in: -1, pipe_out: -3
10672: pipe_in: -3, pipe_out: 4, async: 0
10674: dup-close fd 5 to get stdout
10672: dofork?: 1
10672: for simple command pipe_in: -3, pipe_out: 4, dgsh_in: 0, dgsh_out: 0, executing_function: 0
10672: set DGSH_IN=1
10672: set_dgsh_path(), path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin, dgshpath: /usr/local/libexec/dgsh
10672: set_dgsh_path(): after prepending, path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10672: set DGSH_OUT=1
10672: set_dgsh_path(), path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin, dgshpath: /usr/local/libexec/dgsh
10672: after putenv pipe_in: -3, pipe_out: 4, dgsh_in: 0, dgsh_out: 0, executing_function: 0
10673: go do piping
10673: pipe_in: -1, pipe_out: -1
10673: go shell_execve
10674: Path to command: /usr/local/libexec/dgsh/dgsh-conc
10674: Command /usr/local/libexec/dgsh/dgsh-conc is in the dgsh path
10674: go execute disk command
10674: go do piping
10674: pipe_in: -1, pipe_out: -1
10674: go shell_execve
10672: Return 0 from fork
10672: Completed waiting for pid: 10675
10672: exit switch for command: 4
10672: exec_result: 0
10672: last command exit value: 0
10672: Conc command returned 0
10672: dgsh-conc input (output type: 2) at level 0 returned 0
10672: go do piping
10672: pipe_in: -1, pipe_out: -1
10672: pipe_in: -1, pipe_out: -1, asynchronous: 0
10672: dgsh_nest_level: 0, command: {{ cat & wait; }}, command type: 10
10672: Unset dgshpath from path
10672: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10672: dgshpath not in path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10672: command type: 10, command: {{ cat & wait; }}
10672: cm_dgsh case: pipe_in: -1, pipe_out: -1, dgsh_in: 0, dgsh_out: 0
10672: pipe_in: -1, pipe_out: -1, asynchronous: 0
10672: dgsh_nest_level: 0, command: cat & wait, command type: 6
10672: command type: 6, command: cat & wait
10672: cm_connection case
10672: async command first: cat, pipe_in: -1, pipe_out: -1
10672: pipe_in: -1, pipe_out: -1, asynchronous: 1
10672: dgsh_nest_level: 0, command: cat, command type: 4
10672: output_type: 2, outsize: 1, insize: 1, out_index: 0,in_index: 0, pipe_in: -1, pipe_out: -1
10672: go change pipe. command: cat, all out pipes: 1,in pipes: 1, pipe_in: -1, pipe_out: -1
noinput: 1
10672: dgsh_procs: pipe_in: 3, pipe_out: 6, out_index: 1, in_index: 1
10672: command type: 4, command: cat
10672: cm_simple case
10672: pipe_in: 3, pipe_out: 6, async: 1
10672: dofork?: 1
10672: for simple command pipe_in: 3, pipe_out: 6, dgsh_in: 0, dgsh_out: 0, executing_function: 0
10672: set DGSH_IN=1
10672: set_dgsh_path(), path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin, dgshpath: /usr/local/libexec/dgsh
10672: set_dgsh_path(): after prepending, path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10672: set DGSH_OUT=1
10672: set_dgsh_path(), path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin, dgshpath: /usr/local/libexec/dgsh
10672: after putenv pipe_in: 3, pipe_out: 6, dgsh_in: 0, dgsh_out: 0, executing_function: 0
10672: Return 0 from fork
10672: Completed waiting for pid: 10676
10672: exit switch for command: 4
10672: exec_result: 0
10672: last command exit value: 0
10672: async command second: wait, pipe_in: -1, pipe_out: -1
10672: pipe_in: -1, pipe_out: -1, asynchronous: 0
10672: dgsh_nest_level: 0, command: wait, command type: 4
10672: Unset dgshpath from path
10672: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10672: dgshpath not in path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10672: command type: 4, command: wait
10672: cm_simple case
10672: pipe_in: -1, pipe_out: -1, async: 0
10672: dofork?: 0
10676: go do piping after make_child()
10676: pipe_in: 3, pipe_out: 6
10676: dup-close fd 3 to get stdin
10676: dup-close fd 6 to get stdout
10675: go do piping after make_child()
10675: pipe_in: -3, pipe_out: 4
10675: dup-close fd 5 to get stdin
10675: dup-close fd 4 to get stdout
10676: Path to command: /usr/local/libexec/dgsh/cat
10676: Command /usr/local/libexec/dgsh/cat is in the dgsh path
10676: go execute disk command
10675: Path to command: /usr/local/libexec/dgsh/dgsh-conc
10676: async: CMD_STDIN_REDIR: 0, pipe_in: -1, stdin_redirects: 0
10675: Command /usr/local/libexec/dgsh/dgsh-conc is in the dgsh path
10676: go do piping
10676: pipe_in: -1, pipe_out: -1
10675: go execute disk command
10676: go shell_execve
10674: Message block created by process dgsh-conc with pid 10674.
10674: Origin: conc with pid 10674
10674: **fd i: 1 set for writing
10675: go do piping
10675: pipe_in: -1, pipe_out: -1
10674: write_message_block(): (null) (0)
10675: go shell_execve
10674: write_message_block(): Write message block.
10674: Try write struct of size: 88
10674: write_message_block(): Wrote message block of size 88 bytes
10674: write_message_block(): Shipped message block or solution to next node in graph from file descriptor: 1.
10674: pi[1].pid: 0 is_ready?: 0
10674: print_state(): pi[0].pid: 0
10674: run ready?: 0, seen times: 0
10674: written: 0, nfds: 0
10674: print_state(): pi[1].pid: 0
10674: run ready?: 0, seen times: 0
10674: written: 0, nfds: 0
10674: chosen_mb: 5635a6220040, i: 2, next: 3, pi[next].to_write: 0
10674: free_mb(): Freed message block.
10673: bash: pgrp: 10670, dgshpath: /usr/local/libexec/dgsh
10676: bash: pgrp: 10670, dgshpath: /usr/local/libexec/dgsh
10673: Check if shell is dgsh. dgsh: 0
10673: input from file: /usr/local/libexec/dgsh/cat
10673: go yyparse()
10673: go yyparse()
10673: go yyparse()
10673: go yyparse()
10673: go yyparse()
10673: go yyparse()
10673: pipe_in: -1, pipe_out: -1, asynchronous: 0
10673: dgsh_nest_level: -1, command: function usage ()
{
echo 'Usage: cat [-u] [file ...]' 1>&2;
exit 2
}, command type: 7
10673: Unset dgshpath from path
10673: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10673: command type: 7, command: function usage ()
{
echo 'Usage: cat [-u] [file ...]' 1>&2;
exit 2
}
10673: exit switch for command: 7
10673: exec_result: 0
10673: last command exit value: 0
10673: go yyparse()
10673: go yyparse()
10673: pipe_in: -1, pipe_out: -1, asynchronous: 0
10673: dgsh_nest_level: -1, command: while getopts 'u' o; do
case "$o" in
u)
;;
*)
usage
;;
esac;
done, command type: 2
10673: Unset dgshpath from path
10673: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10673: command type: 2, command: while getopts 'u' o; do
case "$o" in
u)
;;
*)
usage
;;
esac;
done
10673: pipe_in: -1, pipe_out: -1, asynchronous: 0
10673: dgsh_nest_level: -1, command: getopts 'u' o, command type: 4
10673: Unset dgshpath from path
10673: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10673: command type: 4, command: getopts 'u' o
10673: cm_simple case
10673: pipe_in: -1, pipe_out: -1, async: 0
10676: Check if shell is dgsh. dgsh: 0
10676: input from file: /usr/local/libexec/dgsh/cat
10673: dofork?: 0
10676: go yyparse()
10673: Completed waiting for pid: -1
10673: exit switch for command: 4
10673: exec_result: 1
10673: last command exit value: 1
10676: go yyparse()
10673: exit switch for command: 2
10673: exec_result: 0
10673: last command exit value: 0
10676: go yyparse()
10673: go yyparse()
10673: go yyparse()
10676: go yyparse()
10676: go yyparse()
10676: go yyparse()
10673: pipe_in: -1, pipe_out: -1, asynchronous: 0
10673: dgsh_nest_level: -1, command: shift $((OPTIND-1)), command type: 4
10673: Unset dgshpath from path
10673: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10673: command type: 4, command: shift $((OPTIND-1))
10673: cm_simple case
10673: pipe_in: -1, pipe_out: -1, async: 0
10673: dofork?: 0
10676: pipe_in: -1, pipe_out: -1, asynchronous: 0
10673: Completed waiting for pid: -1
10673: exit switch for command: 4
10673: exec_result: 0
10673: last command exit value: 0
10673: go yyparse()
10673: go yyparse()
10673: pipe_in: -1, pipe_out: -1, asynchronous: 0
10676: dgsh_nest_level: -1, command: function usage ()
{
echo 'Usage: cat [-u] [file ...]' 1>&2;
exit 2
10673: dgsh_nest_level: -1, command: declare -a opts, command type: 4
10673: Unset dgshpath from path
}, command type: 7
10673: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10676: Unset dgshpath from path
10673: command type: 4, command: declare -a opts
10673: cm_simple case
10676: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10673: pipe_in: -1, pipe_out: -1, async: 0
10673: dofork?: 0
10676: command type: 7, command: function usage ()
{
echo 'Usage: cat [-u] [file ...]' 1>&2;
exit 2
}
10673: Completed waiting for pid: -1
10673: exit switch for command: 4
10673: exec_result: 0
10673: last command exit value: 0
10673: go yyparse()
10673: go yyparse()
10676: exit switch for command: 7
10676: exec_result: 0
10676: last command exit value: 0
10673: go yyparse()
10676: go yyparse()
10676: go yyparse()
10673: pipe_in: -1, pipe_out: -1, asynchronous: 0
10673: dgsh_nest_level: -1, command: for i in "$@";
do
opts+=('-i' "$i"); shift;
done, command type: 0
10673: Unset dgshpath from path
10673: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10673: command type: 0, command: for i in "$@";
do
opts+=('-i' "$i"); shift;
done
10673: exit switch for command: 0
10673: exec_result: 0
10673: last command exit value: 0
10673: go yyparse()
10673: go yyparse()
10673: pipe_in: -1, pipe_out: -1, asynchronous: 0
10676: pipe_in: -1, pipe_out: -1, asynchronous: 0
10673: dgsh_nest_level: -1, command: exec dgsh-tee "${opts[@]}", command type: 4
10673: Unset dgshpath from path
10673: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10673: command type: 4, command: exec dgsh-tee "${opts[@]}"
10673: cm_simple case
10673: pipe_in: -1, pipe_out: -1, async: 0
10673: dofork?: 0
10676: dgsh_nest_level: -1, command: while getopts 'u' o; do
case "$o" in
u)
;;
*)
usage
;;
esac;
done, command type: 2
10676: Unset dgshpath from path
10676: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10676: command type: 2, command: while getopts 'u' o; do
case "$o" in
u)
;;
*)
usage
;;
esac;
done
10676: pipe_in: -1, pipe_out: -1, asynchronous: 0
10676: dgsh_nest_level: -1, command: getopts 'u' o, command type: 4
10676: Unset dgshpath from path
10676: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10676: command type: 4, command: getopts 'u' o
10676: cm_simple case
10676: pipe_in: -1, pipe_out: -1, async: 0
10676: dofork?: 0
10676: Completed waiting for pid: -1
10676: exit switch for command: 4
10676: exec_result: 1
10676: last command exit value: 1
10676: exit switch for command: 2
10676: exec_result: 0
10676: last command exit value: 0
10676: go yyparse()
10676: go yyparse()
10676: pipe_in: -1, pipe_out: -1, asynchronous: 0
10676: dgsh_nest_level: -1, command: shift $((OPTIND-1)), command type: 4
10676: Unset dgshpath from path
10676: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10676: command type: 4, command: shift $((OPTIND-1))
10676: cm_simple case
10676: pipe_in: -1, pipe_out: -1, async: 0
10676: dofork?: 0
10676: Completed waiting for pid: -1
10676: exit switch for command: 4
10676: exec_result: 0
10676: last command exit value: 0
10676: go yyparse()
10676: go yyparse()
10676: pipe_in: -1, pipe_out: -1, asynchronous: 0
10676: dgsh_nest_level: -1, command: declare -a opts, command type: 4
10676: Unset dgshpath from path
10676: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10676: command type: 4, command: declare -a opts
10676: cm_simple case
10676: pipe_in: -1, pipe_out: -1, async: 0
10676: dofork?: 0
10676: Completed waiting for pid: -1
10676: exit switch for command: 4
10676: exec_result: 0
10676: last command exit value: 0
10676: go yyparse()
10676: go yyparse()
10676: go yyparse()
10676: pipe_in: -1, pipe_out: -1, asynchronous: 0
10676: dgsh_nest_level: -1, command: for i in "$@";
do
opts+=('-i' "$i"); shift;
done, command type: 0
10676: Unset dgshpath from path
10676: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10676: command type: 0, command: for i in "$@";
do
opts+=('-i' "$i"); shift;
done
10676: exit switch for command: 0
10676: exec_result: 0
10676: last command exit value: 0
10676: go yyparse()
10676: go yyparse()
10676: pipe_in: -1, pipe_out: -1, asynchronous: 0
10676: dgsh_nest_level: -1, command: exec dgsh-tee "${opts[@]}", command type: 4
10676: Unset dgshpath from path
10676: dgshpath in path: /usr/local/libexec/dgsh:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/luwe/.local/bin
10676: command type: 4, command: exec dgsh-tee "${opts[@]}"
10676: cm_simple case
10676: pipe_in: -1, pipe_out: -1, async: 0
10676: dofork?: 0
10673: dgsh_negotiate(): Tool cat with pid 10673 negotiating: nin=-1 nout=-1.
10673: Try to get environment variable DGSH_IN.
10673: getenv() returned string value 1.
10673: Integer form of value is 1.
10673: Try to get environment variable DGSH_OUT.
10673: getenv() returned string value 0.
10673: Integer form of value is 0.
10673: dgsh_negotiate(): perform round
10673: Next operation is a read
10676: dgsh_negotiate(): Tool dgsh-tee with pid 10676 negotiating: nin=-1 nout=-1.
10676: Try to get environment variable DGSH_IN.
10676: getenv() returned string value 1.
10676: Integer form of value is 1.
10676: Try to get environment variable DGSH_OUT.
10676: getenv() returned string value 1.
10676: Integer form of value is 1.
10676: dgsh_negotiate(): perform round
10676: Next operation is a read
10676: read on fd 0 is active.
10676: read_message_block(): dgsh-tee (0)
10676: read_chunk(): buf_size: 88, IOV_MAX: 1024
10676: Try read from fd 0.
10676: Read succeeded: 88 bytes read from 0.
10676: read_message_block(): Read message block or solution from node -1 sent from file descriptor: stdout.
10676: fill_node(): dgsh_in: 1, self_node.requires_channels: -1
10676: fill_node(): dgsh_out: 1, self_node.provides_channels: -1
10676: Dgsh node for tool dgsh-tee with pid 10676 created.
10676: add_node(): Added node dgsh-tee in position 0 on dgsh graph, initiator: 10674
10676: Dgsh graph now has 1 nodes.
10676: dgsh_negotiate(): perform round
10676: Next operation is a write
10676: STDOUT set for write
10676: write on fd 1 is active.
10676: set_dispatcher(): message block origin set to 0 and writing on the output side
10676: write_message_block(): dgsh-tee (0)
10676: write_message_block(): Write message block.
10676: Try write struct of size: 88
10676: write_message_block(): Wrote message block of size 88 bytes
10676: Try write struct of size: 124
10676: write_message_block(): Wrote nodes of size 124 bytes
10676: write_message_block(): Shipped message block or solution to next node in graph from file descriptor: 1.
10676: dgsh_negotiate(): perform round
10676: Next operation is a read
10675: read_message_block(): (null) (0)
10675: read_chunk(): buf_size: 88, IOV_MAX: 1024
10675: Try read from fd 0.
10675: Read succeeded: 88 bytes read from 0.
10675: read_chunk(): buf_size: 124, IOV_MAX: 1024
10675: Try read from fd 0.
10675: Read succeeded: 124 bytes read from 0.
10675: alloc_copy_nodes(): Node array recovered.
10675: read_message_block(): Read message block or solution from node 0 sent from file descriptor: stdout.
10675: pass_message_blocks(): next write via fd 1 to pid 0
10675: set_io_channels: n_proc_pids: 1
10675: print_state(): pi[0].pid: 10676
10675: initiator pid: 10674
10675: pi[0].seen: 0
10675: write: 0
10675: print_state(): pi[0].pid: 10676
10675: run ready?: 0, seen times: 0
10675: written: 0, nfds: 10674
10675: print_state(): pi[0].pid: 10676
10675: run ready?: 0, seen times: 0
10675: written: 0, nfds: 0
10675: print_state(): pi[1].pid: 0
10675: run ready?: 0, seen times: 0
10675: written: 0, nfds: 0
10675: Origin: conc with pid 10675
10675: **fd i: 1 set for writing
10675: write_message_block(): (null) (0)
10675: write_message_block(): Write message block.
10675: Try write struct of size: 88
10675: write_message_block(): Wrote message block of size 88 bytes
10675: Try write struct of size: 124
10675: write_message_block(): Wrote nodes of size 124 bytes
10675: write_message_block(): Shipped message block or solution to next node in graph from file descriptor: 1.
10673: read on fd 0 is active.
10675: pi[1].pid: 0 is_ready?: 0
10675: print_state(): pi[0].pid: 10676
10673: read_message_block(): cat (0)
10675: run ready?: 0, seen times: 0
10675: written: 0, nfds: 0
10673: read_chunk(): buf_size: 88, IOV_MAX: 1024
10675: print_state(): pi[1].pid: 0
10673: Try read from fd 0.
10675: run ready?: 0, seen times: 0
10675: written: 0, nfds: 0
10673: Read succeeded: 88 bytes read from 0.
10675: chosen_mb: 55827562a0a0, i: 2, next: 2, pi[next].to_write: 61
10673: read_chunk(): buf_size: 124, IOV_MAX: 1024
10675: free_mb(): Freed message block.
10673: Try read from fd 0.
10673: Read succeeded: 124 bytes read from 0.
10673: alloc_copy_nodes(): Node array recovered.
10673: read_message_block(): Read message block or solution from node 0 sent from file descriptor: stdout.
10673: node name: dgsh-tee, pid: 10676
10673: fill_node(): dgsh_in: 1, self_node.requires_channels: -1
10673: fill_node(): dgsh_out: 0, self_node.provides_channels: -1
10673: Dgsh node for tool cat with pid 10673 created.
10673: add_node(): Added node cat in position 1 on dgsh graph, initiator: 10674
10673: Dgsh graph now has 2 nodes.
10673: New dgsh edge from 0 to 1 with 0 instances.
10673: Added edge (0 -> 1) in dgsh graph.
10673: Dgsh graph now has 1 edges.
10673: dgsh_negotiate(): perform round
10673: Next operation is a write
10673: write on fd 0 is active.
10673: set_dispatcher(): message block origin set to 1 and writing on the input side
10673: write_message_block(): cat (1)
10673: write_message_block(): Write message block.
10673: Try write struct of size: 88
10673: write_message_block(): Wrote message block of size 88 bytes
10673: Try write struct of size: 248
10673: write_message_block(): Wrote nodes of size 248 bytes
10673: Try write struct of size: 20
10675: read_message_block(): (null) (0)
10675: read_chunk(): buf_size: 88, IOV_MAX: 1024
10673: write_message_block(): Wrote edges of size 20 bytes
10675: Try read from fd 1.
10673: write_message_block(): Shipped message block or solution to next node in graph from file descriptor: 0.
10673: dgsh_negotiate(): perform round
10675: Read succeeded: 88 bytes read from 1.
10673: Next operation is a read
10675: read_chunk(): buf_size: 248, IOV_MAX: 1024
10675: Try read from fd 1.
10675: Read succeeded: 248 bytes read from 1.
10675: alloc_copy_nodes(): Node array recovered.
10675: read_message_block(): Read 1 negotiation graph edges.
10675: read_chunk(): buf_size: 20, IOV_MAX: 1024
10675: Try read from fd 1.
10675: Read succeeded: 20 bytes read from 1.
10675: read_message_block(): Read message block or solution from node 1 sent from file descriptor: stdin.
10675: pass_message_blocks(): next write via fd 0 to pid 10676
10675: **Store origin: 1, fd: stdin
10675: set_io_channels: n_proc_pids: 1
10675: set_io_channels(): Added conc with pid: 10675, now n_concs: 1
10675: print_state(): pi[1].pid: 10673
10675: initiator pid: 10674
10675: pi[1].seen: 0
10675: write: 0
10675: print_state(): pi[1].pid: 10673
10675: run ready?: 0, seen times: 0
10675: written: 0, nfds: 10674
10675: print_state(): pi[0].pid: 10676
10675: run ready?: 0, seen times: 0
10675: written: 0, nfds: 0
10675: print_state(): pi[1].pid: 10673
10675: run ready?: 0, seen times: 0
10675: written: 0, nfds: 0
10675: Origin: conc with pid 10675
10675: **fd i: 0 set for writing
10675: write_message_block(): (null) (0)
10675: write_message_block(): Write message block.
10675: Try write struct of size: 88
10675: write_message_block(): Wrote message block of size 88 bytes
10675: Try write struct of size: 248
10675: write_message_block(): Wrote nodes of size 248 bytes
10675: Try write struct of size: 32
10676: read on fd 1 is active.
10675: write_concs(): Wrote conc structures of size 32 bytes
10676: read_message_block(): dgsh-tee (0)
10675: Try write struct of size: 4
10676: read_chunk(): buf_size: 88, IOV_MAX: 1024
10676: Try read from fd 1.
10675: write_concs(): Wrote 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10675: Try write struct of size: 20
10676: Read succeeded: 88 bytes read from 1.
10675: write_message_block(): Wrote edges of size 20 bytes
10676: read_chunk(): buf_size: 248, IOV_MAX: 1024
10675: write_message_block(): Shipped message block or solution to next node in graph from file descriptor: 0.
10676: Try read from fd 1.
10675: pi[0].pid: 10676 is_ready?: 0
10676: Read succeeded: 248 bytes read from 1.
10675: print_state(): pi[0].pid: 10676
10676: alloc_copy_nodes(): Node array recovered.
10675: run ready?: 0, seen times: 0
10675: written: 0, nfds: 0
10676: read_chunk(): buf_size: 32, IOV_MAX: 1024
10675: print_state(): pi[1].pid: 10673
10676: Try read from fd 1.
10675: run ready?: 0, seen times: 0
10675: written: 0, nfds: 0
10676: Read succeeded: 32 bytes read from 1.
10675: chosen_mb: 55827562a040, i: 2, next: 2, pi[next].to_write: 61
10676: read_chunk(): buf_size: 4, IOV_MAX: 1024
10676: Try read from fd 1.
10675: free_mb(): Freed message block.
10676: Read succeeded: 4 bytes read from 1.
10676: read_concs(): Read 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10676: read_message_block(): Read 1 negotiation graph edges.
10676: read_chunk(): buf_size: 20, IOV_MAX: 1024
10676: Try read from fd 1.
10676: Read succeeded: 20 bytes read from 1.
10676: read_message_block(): Read message block or solution from node 1 sent from file descriptor: stdin.
10676: node name: dgsh-tee, pid: 10676
10676: New dgsh edge from 0 to 1 with 0 instances.
10676: lookup_dgsh_edge(): Edge 0 to 1 exists.
10676: dgsh_negotiate(): perform round
10676: Next operation is a write
10676: STDIN set for write
10676: write on fd 0 is active.
10676: set_dispatcher(): message block origin set to 0 and writing on the input side
10676: write_message_block(): dgsh-tee (0)
10676: write_message_block(): Write message block.
10676: Try write struct of size: 88
10676: write_message_block(): Wrote message block of size 88 bytes
10676: Try write struct of size: 248
10676: write_message_block(): Wrote nodes of size 248 bytes
10676: Try write struct of size: 32
10676: write_concs(): Wrote conc structures of size 32 bytes
10676: Try write struct of size: 4
10676: write_concs(): Wrote 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10676: Try write struct of size: 20
10676: write_message_block(): Wrote edges of size 20 bytes
10676: write_message_block(): Shipped message block or solution to next node in graph from file descriptor: 0.
10676: dgsh_negotiate(): perform round
10676: Next operation is a read
10674: read_message_block(): (null) (0)
10674: read_chunk(): buf_size: 88, IOV_MAX: 1024
10674: Try read from fd 1.
10674: Read succeeded: 88 bytes read from 1.
10674: read_chunk(): buf_size: 248, IOV_MAX: 1024
10674: Try read from fd 1.
10674: Read succeeded: 248 bytes read from 1.
10674: alloc_copy_nodes(): Node array recovered.
10674: read_chunk(): buf_size: 32, IOV_MAX: 1024
10674: Try read from fd 1.
10674: Read succeeded: 32 bytes read from 1.
10674: read_chunk(): buf_size: 4, IOV_MAX: 1024
10674: Try read from fd 1.
10674: Read succeeded: 4 bytes read from 1.
10674: read_concs(): Read 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10674: read_message_block(): Read 1 negotiation graph edges.
10674: read_chunk(): buf_size: 20, IOV_MAX: 1024
10674: Try read from fd 1.
10674: Read succeeded: 20 bytes read from 1.
10674: read_message_block(): Read message block or solution from node 0 sent from file descriptor: stdin.
10674: pass_message_blocks(): next write via fd 1 to pid 0
10674: pass_message_blocks(): Gathered I/O requirements.
10674: node_match_constraints(): node at index 0.
10674: Node dgsh-tee, index 0, channels required -1, channels_provided -1, dgsh_in 1, dgsh_out 1.
10674: dry_match_io_constraints(): edge at index 0 from 0 to 1, instances 0, from_instances 0, to_instances 0.
10674: dry_match_io_constraints(): Node at index 0 has 1 outgoing edges and 0 incoming.
10674: satisfy_io_constraints(): edge from 0 to 1, is_edge_incoming: 0, free_instances: -1, weight: -1, modulo: 0, from_instances: -1, to_instances: 0.
10674: satisfy_io_constraints(): Number of edges: 1, this_channel_constraint: -1, free instances: -1.
10674: node_match_constraints(): node at index 1.
10674: Node cat, index 1, channels required -1, channels_provided -1, dgsh_in 1, dgsh_out 0.
10674: dry_match_io_constraints(): edge at index 0 from 0 to 1, instances 0, from_instances -1, to_instances 0.
10674: dry_match_io_constraints(): Node at index 1 has 0 outgoing edges and 1 incoming.
10674: satisfy_io_constraints(): edge from 0 to 1, is_edge_incoming: 1, free_instances: -1, weight: -1, modulo: 0, from_instances: -1, to_instances: -1.
10674: satisfy_io_constraints(): Number of edges: 1, this_channel_constraint: -1, free instances: -1.
10674: cross_match_constraints(): node dgsh-tee, index 0, channels required -1, channels_provided -1, dgsh_in 1, dgsh_out 1.
10674: cross_match_io_constraints(): edge from 0 to 1, this_channel_constraint: -1, is_incoming: 0, from_instances: -1, to_instances -1.
10674: cross_match_io_constraints(): edge from 0 to 1, this_channel_constraint: -1, is_incoming: 0, from_instances: -1, to_instances -1, edge instances: 1.
10674: cross_match_constraints(): node cat, index 1, channels required -1, channels_provided -1, dgsh_in 1, dgsh_out 0.
10674: cross_match_io_constraints(): edge from 0 to 1, this_channel_constraint: -1, is_incoming: 1, from_instances: -1, to_instances -1.
10674: cross_match_io_constraints(): edge from 0 to 1, this_channel_constraint: -1, is_incoming: 1, from_instances: -1, to_instances -1, edge instances: 1.
10674: cross_match_constraints(): Cross matched constraints of 2 out of 2 nodes for 1 edges out of 1 edges.
10674: solve_graph(): exit_state: 0, retries: 0
10674: prepare_solution(): Node dgsh-tee, pid: 10676, connections in: 0, connections out: 1.
10674: make_compact_edge_array():Copied edge 0 -> 1 (1) at index 0.
10674: prepare_solution(): Node cat, pid: 10673, connections in: 1, connections out: 0.
10674: make_compact_edge_array():Copied edge 0 -> 1 (1) at index 0.
10674: calculate_conc_fds for 1 n_concs
10674: calculate_conc_fds() for conc 10675 at index 0 with 1 n_proc_pids
10674: calculate_conc_fds(): conc pid 10675 at index 0: 1 outgoing fds for endpoint pid 10673 recovered
10674: calculate_conc_fds(): conc pid 10675 at index 0: 1 incoming fds for pid 10676 recovered
10674: calculate_conc_fds(): Conc pid 10675 at index 0 has 1 incoming fds and 1 outgoing fds
10674: calculate_conc_fds(): Calculated fds for 1 concs so far
10674: solve_graph: exit_state: 0
10674: pass_message_blocks(): Computed solution
10674: print_state(): pi[1].pid: 10676
10674: initiator pid: 10674
10674: pi[1].seen: 0
10674: write: 0
10674: print_state(): pi[1].pid: 10676
10674: run ready?: 0, seen times: 0
10674: written: 0, nfds: 10674
10674: print_state(): pi[0].pid: 0
10674: run ready?: 0, seen times: 0
10674: written: 0, nfds: 0
10674: print_state(): pi[1].pid: 10676
10674: run ready?: 0, seen times: 0
10674: written: 0, nfds: 0
10674: Origin: conc with pid 10674
10674: **fd i: 1 set for writing
10674: write_message_block(): (null) (0)
10674: write_message_block(): Write message block.
10674: Try write struct of size: 88
10674: write_message_block(): Wrote message block of size 88 bytes
10674: Try write struct of size: 248
10674: write_message_block(): Wrote nodes of size 248 bytes
10674: Try write struct of size: 32
10674: write_concs(): Wrote conc structures of size 32 bytes
10674: Try write struct of size: 4
10674: write_concs(): Wrote 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10674: Try write struct of size: 80
10674: write_graph_solution(): Wrote graph solution of size 80 bytes
10674: Try write struct of size: 20
10676: read on fd 0 is active.
10674: write_graph_solution(): Wrote node's 0 1 outgoing edges of size 20 bytes
10674: Try write struct of size: 20
10676: read_message_block(): dgsh-tee (0)
10676: read_chunk(): buf_size: 88, IOV_MAX: 1024
10674: write_graph_solution(): Wrote node's 1 1 incoming edges of size 20 bytes
10676: Try read from fd 0.
10674: write_message_block(): Shipped message block or solution to next node in graph from file descriptor: 1.
10674: pi[1].pid: 10676 is_ready?: 0
10676: Read succeeded: 88 bytes read from 0.
10674: print_state(): pi[0].pid: 0
10674: run ready?: 0, seen times: 0
10676: read_chunk(): buf_size: 248, IOV_MAX: 1024
10674: written: 0, nfds: 0
10676: Try read from fd 0.
10674: print_state(): pi[1].pid: 10676
10676: Read succeeded: 248 bytes read from 0.
10674: run ready?: 0, seen times: 0
10676: alloc_copy_nodes(): Node array recovered.
10674: written: 1, nfds: 0
10676: read_chunk(): buf_size: 32, IOV_MAX: 1024
10676: Try read from fd 0.
10674: chosen_mb: 5635a62200a0, i: 2, next: 3, pi[next].to_write: 0
10676: Read succeeded: 32 bytes read from 0.
10674: free_graph_solution: freed 2 nodes.
10676: read_chunk(): buf_size: 4, IOV_MAX: 1024
10676: Try read from fd 0.
10674: free_mb(): Freed message block.
10676: Read succeeded: 4 bytes read from 0.
10676: read_concs(): Read 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10676: read_chunk(): buf_size: 80, IOV_MAX: 1024
10676: Try read from fd 0.
10676: Read succeeded: 80 bytes read from 0.
10676: Node 0 with 0 incoming edges at 0 and 1 outgoing edges at 5635a62201e0.
10676: read_chunk(): buf_size: 20, IOV_MAX: 1024
10676: Try read from fd 0.
10676: Read succeeded: 20 bytes read from 0.
10676: Node 1 with 1 incoming edges at 5635a6220160 and 0 outgoing edges at 0.
10676: read_chunk(): buf_size: 20, IOV_MAX: 1024
10676: Try read from fd 0.
10676: Read succeeded: 20 bytes read from 0.
10676: read_message_block(): Read message block or solution from node -1 sent from file descriptor: stdout.
10676: dgsh_negotiate(): perform round
10676: Next operation is a write
10676: STDOUT set for write
10676: write on fd 1 is active.
10676: set_dispatcher(): message block origin set to 0 and writing on the output side
10676: write_message_block(): dgsh-tee (0)
10676: write_message_block(): Write message block.
10676: Try write struct of size: 88
10676: write_message_block(): Wrote message block of size 88 bytes
10676: Try write struct of size: 248
10676: write_message_block(): Wrote nodes of size 248 bytes
10676: Try write struct of size: 32
10676: write_concs(): Wrote conc structures of size 32 bytes
10675: read_message_block(): (null) (0)
10676: Try write struct of size: 4
10675: read_chunk(): buf_size: 88, IOV_MAX: 1024
10676: write_concs(): Wrote 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10675: Try read from fd 0.
10676: Try write struct of size: 80
10676: write_graph_solution(): Wrote graph solution of size 80 bytes
10675: Read succeeded: 88 bytes read from 0.
10676: Try write struct of size: 20
10675: read_chunk(): buf_size: 248, IOV_MAX: 1024
10675: Try read from fd 0.
10676: write_graph_solution(): Wrote node's 0 1 outgoing edges of size 20 bytes
10676: Try write struct of size: 20
10675: Read succeeded: 248 bytes read from 0.
10675: alloc_copy_nodes(): Node array recovered.
10676: write_graph_solution(): Wrote node's 1 1 incoming edges of size 20 bytes
10676: write_message_block(): Shipped message block or solution to next node in graph from file descriptor: 1.
10675: read_chunk(): buf_size: 32, IOV_MAX: 1024
10676: dgsh_negotiate(): perform round
10675: Try read from fd 0.
10676: Next operation is a read
10675: Read succeeded: 32 bytes read from 0.
10675: read_chunk(): buf_size: 4, IOV_MAX: 1024
10675: Try read from fd 0.
10675: Read succeeded: 4 bytes read from 0.
10675: read_concs(): Read 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10675: read_chunk(): buf_size: 80, IOV_MAX: 1024
10675: Try read from fd 0.
10675: Read succeeded: 80 bytes read from 0.
10675: Node 0 with 0 incoming edges at 0 and 1 outgoing edges at 55a97f44c480.
10675: read_chunk(): buf_size: 20, IOV_MAX: 1024
10675: Try read from fd 0.
10675: Read succeeded: 20 bytes read from 0.
10675: Node 1 with 1 incoming edges at 55a97f44c4a0 and 0 outgoing edges at 0.
10675: read_chunk(): buf_size: 20, IOV_MAX: 1024
10675: Try read from fd 0.
10675: Read succeeded: 20 bytes read from 0.
10675: read_message_block(): Read message block or solution from node 0 sent from file descriptor: stdout.
10675: pass_message_blocks(): next write via fd 1 to pid 10673
10675: print_state(): pi[0].pid: 10676
10675: initiator pid: 10674
10675: pi[0].seen: 1
10675: write: 0
10675: print_state(): pi[0].pid: 10676
10675: run ready?: 0, seen times: 1
10675: written: 0, nfds: 10674
10675: print_state(): pi[0].pid: 10676
10675: run ready?: 0, seen times: 1
10675: written: 0, nfds: 0
10675: print_state(): pi[1].pid: 10673
10675: run ready?: 0, seen times: 0
10675: written: 0, nfds: 0
10675: Origin: conc with pid 10675
10675: **fd i: 1 set for writing
10675: write_message_block(): (null) (0)
10675: write_message_block(): Write message block.
10675: Try write struct of size: 88
10675: write_message_block(): Wrote message block of size 88 bytes
10675: Try write struct of size: 248
10675: write_message_block(): Wrote nodes of size 248 bytes
10675: Try write struct of size: 32
10673: read on fd 0 is active.
10675: write_concs(): Wrote conc structures of size 32 bytes
10673: read_message_block(): cat (1)
10675: Try write struct of size: 4
10673: read_chunk(): buf_size: 88, IOV_MAX: 1024
10673: Try read from fd 0.
10675: write_concs(): Wrote 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10675: Try write struct of size: 80
10673: Read succeeded: 88 bytes read from 0.
10675: write_graph_solution(): Wrote graph solution of size 80 bytes
10675: Try write struct of size: 20
10673: read_chunk(): buf_size: 248, IOV_MAX: 1024
10673: Try read from fd 0.
10675: write_graph_solution(): Wrote node's 0 1 outgoing edges of size 20 bytes
10673: Read succeeded: 248 bytes read from 0.
10675: Try write struct of size: 20
10673: alloc_copy_nodes(): Node array recovered.
10675: write_graph_solution(): Wrote node's 1 1 incoming edges of size 20 bytes
10673: read_chunk(): buf_size: 32, IOV_MAX: 1024
10673: Try read from fd 0.
10675: write_message_block(): Shipped message block or solution to next node in graph from file descriptor: 1.
10675: pi[1].pid: 10673 is_ready?: 0
10673: Read succeeded: 32 bytes read from 0.
10675: print_state(): pi[0].pid: 10676
10673: read_chunk(): buf_size: 4, IOV_MAX: 1024
10675: run ready?: 0, seen times: 1
10673: Try read from fd 0.
10675: written: 0, nfds: 0
10675: print_state(): pi[1].pid: 10673
10673: Read succeeded: 4 bytes read from 0.
10675: run ready?: 0, seen times: 0
10675: written: 1, nfds: 0
10673: read_concs(): Read 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10675: chosen_mb: 55827562a0a0, i: 2, next: 2, pi[next].to_write: 61
10673: read_chunk(): buf_size: 80, IOV_MAX: 1024
10673: Try read from fd 0.
10675: free_graph_solution: freed 2 nodes.
10673: Read succeeded: 80 bytes read from 0.
10675: free_mb(): Freed message block.
10673: Node 0 with 0 incoming edges at 0 and 1 outgoing edges at 55827562a260.
10673: read_chunk(): buf_size: 20, IOV_MAX: 1024
10673: Try read from fd 0.
10673: Read succeeded: 20 bytes read from 0.
10673: Node 1 with 1 incoming edges at 55827562a280 and 0 outgoing edges at 0.
10673: read_chunk(): buf_size: 20, IOV_MAX: 1024
10673: Try read from fd 0.
10673: Read succeeded: 20 bytes read from 0.
10673: read_message_block(): Read message block or solution from node 0 sent from file descriptor: stdout.
10673: dgsh_negotiate(): perform round
10673: Next operation is a write
10673: write on fd 0 is active.
10673: set_dispatcher(): message block origin set to 1 and writing on the input side
10673: write_message_block(): cat (1)
10673: write_message_block(): Write message block.
10673: Try write struct of size: 88
10673: write_message_block(): Wrote message block of size 88 bytes
10673: Try write struct of size: 248
10673: write_message_block(): Wrote nodes of size 248 bytes
10675: read_message_block(): (null) (0)
10673: Try write struct of size: 32
10675: read_chunk(): buf_size: 88, IOV_MAX: 1024
10675: Try read from fd 1.
10673: write_concs(): Wrote conc structures of size 32 bytes
10673: Try write struct of size: 4
10675: Read succeeded: 88 bytes read from 1.
10675: read_chunk(): buf_size: 248, IOV_MAX: 1024
10673: write_concs(): Wrote 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10675: Try read from fd 1.
10673: Try write struct of size: 80
10675: Read succeeded: 248 bytes read from 1.
10673: write_graph_solution(): Wrote graph solution of size 80 bytes
10675: alloc_copy_nodes(): Node array recovered.
10673: Try write struct of size: 20
10675: read_chunk(): buf_size: 32, IOV_MAX: 1024
10675: Try read from fd 1.
10673: write_graph_solution(): Wrote node's 0 1 outgoing edges of size 20 bytes
10673: Try write struct of size: 20
10675: Read succeeded: 32 bytes read from 1.
10675: read_chunk(): buf_size: 4, IOV_MAX: 1024
10673: write_graph_solution(): Wrote node's 1 1 incoming edges of size 20 bytes
10675: Try read from fd 1.
10673: write_message_block(): Shipped message block or solution to next node in graph from file descriptor: 0.
10675: Read succeeded: 4 bytes read from 1.
10673: dgsh_negotiate(): cat (1) leaves after write with state COMPLETE.
10675: read_concs(): Read 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10673: alloc_io_fds(): self node: 1, incoming edges: 1, outgoing edges: 0
10675: read_chunk(): buf_size: 80, IOV_MAX: 1024
10675: Try read from fd 1.
10673: read_input_fds(): 1 incoming edges to inspect of node 1.
10675: Read succeeded: 80 bytes read from 1.
10675: Node 0 with 0 incoming edges at 0 and 1 outgoing edges at 55e66dbfa390.
10675: read_chunk(): buf_size: 20, IOV_MAX: 1024
10675: Try read from fd 1.
10675: Read succeeded: 20 bytes read from 1.
10675: Node 1 with 1 incoming edges at 55e66dbfa3b0 and 0 outgoing edges at 0.
10675: read_chunk(): buf_size: 20, IOV_MAX: 1024
10675: Try read from fd 1.
10675: Read succeeded: 20 bytes read from 1.
10675: read_message_block(): Read message block or solution from node 1 sent from file descriptor: stdin.
10675: pass_message_blocks(): next write via fd 0 to pid 10676
10675: print_state(): pi[1].pid: 10673
10675: initiator pid: 10674
10675: pi[1].seen: 1
10675: write: 1
10675: print_state(): pi[1].pid: 10673
10675: run ready?: 0, seen times: 1
10675: written: 1, nfds: 10674
10675: **pass_message_blocks(): pi[1] is run ready
10675: print_state(): pi[0].pid: 10676
10675: run ready?: 0, seen times: 1
10675: written: 0, nfds: 0
10675: print_state(): pi[1].pid: 10673
10675: run ready?: 1, seen times: 1
10675: written: 1, nfds: 1
10675: Origin: conc with pid 10675
10675: **fd i: 0 set for writing
10675: write_message_block(): (null) (0)
10675: write_message_block(): Write message block.
10675: Try write struct of size: 88
10675: write_message_block(): Wrote message block of size 88 bytes
10675: Try write struct of size: 248
10675: write_message_block(): Wrote nodes of size 248 bytes
10676: read on fd 1 is active.
10675: Try write struct of size: 32
10676: read_message_block(): dgsh-tee (0)
10675: write_concs(): Wrote conc structures of size 32 bytes
10676: read_chunk(): buf_size: 88, IOV_MAX: 1024
10675: Try write struct of size: 4
10676: Try read from fd 1.
10676: Read succeeded: 88 bytes read from 1.
10675: write_concs(): Wrote 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10675: Try write struct of size: 80
10676: read_chunk(): buf_size: 248, IOV_MAX: 1024
10676: Try read from fd 1.
10675: write_graph_solution(): Wrote graph solution of size 80 bytes
10675: Try write struct of size: 20
10676: Read succeeded: 248 bytes read from 1.
10676: alloc_copy_nodes(): Node array recovered.
10675: write_graph_solution(): Wrote node's 0 1 outgoing edges of size 20 bytes
10676: read_chunk(): buf_size: 32, IOV_MAX: 1024
10675: Try write struct of size: 20
10676: Try read from fd 1.
10675: write_graph_solution(): Wrote node's 1 1 incoming edges of size 20 bytes
10675: write_message_block(): Shipped message block or solution to next node in graph from file descriptor: 0.
10675: pi[0].pid: 10676 is_ready?: 1
10675: **pass_message_blocks(): pi[0] is run ready
10675: print_state(): pi[0].pid: 10676
10675: run ready?: 1, seen times: 1
10675: written: 1, nfds: 1
10675: print_state(): pi[1].pid: 10673
10675: run ready?: 1, seen times: 1
10675: written: 1, nfds: 2
10675: pass_message_blocks(): conc leaves negotiation
10675: gather_input_fds(): fds to write: 1
10675: gather_input_fds(): fds to read for p[0].pid 10676: 1
10676: Read succeeded: 32 bytes read from 1.
10676: read_chunk(): buf_size: 4, IOV_MAX: 1024
10676: Try read from fd 1.
10676: Read succeeded: 4 bytes read from 1.
10676: read_concs(): Read 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10676: read_chunk(): buf_size: 80, IOV_MAX: 1024
10676: Try read from fd 1.
10676: Read succeeded: 80 bytes read from 1.
10676: Node 0 with 0 incoming edges at 0 and 1 outgoing edges at 55827562a260.
10676: read_chunk(): buf_size: 20, IOV_MAX: 1024
10676: Try read from fd 1.
10676: Read succeeded: 20 bytes read from 1.
10676: Node 1 with 1 incoming edges at 55827562a280 and 0 outgoing edges at 0.
10676: read_chunk(): buf_size: 20, IOV_MAX: 1024
10676: Try read from fd 1.
10676: Read succeeded: 20 bytes read from 1.
10676: read_message_block(): Read message block or solution from node 1 sent from file descriptor: stdin.
10676: dgsh_negotiate(): perform round
10676: Next operation is a write
10676: STDIN set for write
10676: write on fd 0 is active.
10676: set_dispatcher(): message block origin set to 0 and writing on the input side
10676: write_message_block(): dgsh-tee (0)
10676: write_message_block(): Write message block.
10676: Try write struct of size: 88
10676: write_message_block(): Wrote message block of size 88 bytes
10676: Try write struct of size: 248
10676: write_message_block(): Wrote nodes of size 248 bytes
10676: Try write struct of size: 32
10676: write_concs(): Wrote conc structures of size 32 bytes
10676: Try write struct of size: 4
10676: write_concs(): Wrote 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10676: Try write struct of size: 80
10676: write_graph_solution(): Wrote graph solution of size 80 bytes
10676: Try write struct of size: 20
10676: write_graph_solution(): Wrote node's 0 1 outgoing edges of size 20 bytes
10676: Try write struct of size: 20
10676: write_graph_solution(): Wrote node's 1 1 incoming edges of size 20 bytes
10676: write_message_block(): Shipped message block or solution to next node in graph from file descriptor: 0.
10674: read_message_block(): (null) (0)
10676: dgsh_negotiate(): dgsh-tee (0) leaves after write with state COMPLETE.
10676: alloc_io_fds(): self node: 0, incoming edges: 0, outgoing edges: 1
10676: read_input_fds(): 0 incoming edges to inspect of node 0.
10674: read_chunk(): buf_size: 88, IOV_MAX: 1024
10676: write_output_fds(): for node at index 0 with 1 outgoing edges.
10674: Try read from fd 1.
10676: write_output_fds(): created pipe pair 3 - 4. Transmitting fd 3 through sendmsg().
10674: Read succeeded: 88 bytes read from 1.
10676: establish_io_connections(): input fds: 0, output fds: 1
10676: establish_io_connections(): closed STDOUT, dup 4 returned 1
10674: read_chunk(): buf_size: 248, IOV_MAX: 1024
10674: Try read from fd 1.
10674: Read succeeded: 248 bytes read from 1.
10674: alloc_copy_nodes(): Node array recovered.
10674: read_chunk(): buf_size: 32, IOV_MAX: 1024
10674: Try read from fd 1.
10675: gather_input_fds(): Read fd: 4 from input channel: 0
10674: Read succeeded: 32 bytes read from 1.
10675: free_graph_solution: freed 2 nodes.
10674: read_chunk(): buf_size: 4, IOV_MAX: 1024
10675: free_mb(): Freed message block.
10675: conc with pid 10675 terminates normally
10674: Try read from fd 1.
10674: Read succeeded: 4 bytes read from 1.
10674: read_concs(): Read 1 proc_pids for conc 10675 at index 0 of size 4 bytes
10674: read_chunk(): buf_size: 80, IOV_MAX: 1024
10674: Try read from fd 1.
10674: Read succeeded: 80 bytes read from 1.
10674: Node 0 with 0 incoming edges at 0 and 1 outgoing edges at 55a97f44c680.
10674: read_chunk(): buf_size: 20, IOV_MAX: 1024
10674: Try read from fd 1.
10674: Read succeeded: 20 bytes read from 1.
10674: Node 1 with 1 incoming edges at 55a97f44c6a0 and 0 outgoing edges at 0.
10674: read_chunk(): buf_size: 20, IOV_MAX: 1024
10674: Try read from fd 1.
10674: Read succeeded: 20 bytes read from 1.
10674: read_message_block(): Read message block or solution from node 0 sent from file descriptor: stdin.
10674: pass_message_blocks(): next write via fd 1 to pid 10676
10674: print_state(): pi[1].pid: 10676
10674: initiator pid: 10674
10674: pi[1].seen: 1
10674: write: 1
10676: establish_io_connections(): successful for node dgsh-tee at index 0
10674: print_state(): pi[1].pid: 10676
10674: run ready?: 0, seen times: 1
10674: written: 1, nfds: 10674
10674: **pass_message_blocks(): pi[1] is run ready
10674: print_state(): pi[0].pid: 0
10676: free_graph_solution: freed 2 nodes.
10676: free_mb(): Freed message block.
10676: nin=0 nout=1
10673: read_input_fds: Node 1 received file descriptor 3.
10676: New ofp assigned fd 1
10673: write_output_fds(): for node at index 1 with 0 outgoing edges.
10673: establish_io_connections(): input fds: 1, output fds: 0
10676: Input files
10676: 0x55a97f44c1a0: chain_last=1 (standard input)
10676: Output files
10676: 0x55a97f44c030: chain_last=1 ifp=0x55a97f44c1a0 (standard output)
10673: establish_io_connections(): closed STDIN, dup 3 returned 0
10676: Check active file[standard output] pos_written=0 pos_to_write=0
10673: establish_io_connections(): successful for node cat at index 1
10673: free_graph_solution: freed 2 nodes.
10673: free_mb(): Freed message block.
10673: nin=1 nout=0
10673: New ifp assigned fd 0
10673: Input files
10673: 0x55e66dbfa030: chain_last=1 (standard input)
10673: Output files
10673: 0x55e66dbfa330: chain_last=1 ifp=0x55e66dbfa030 (standard output)
10673: Check active file[standard output] pos_written=0 pos_to_write=0
10674: run ready?: 0, seen times: 0
10674: written: 0, nfds: 0
10674: print_state(): pi[1].pid: 10676
10674: run ready?: 1, seen times: 1
10674: written: 1, nfds: 1
10674: pass_message_blocks(): conc leaves negotiation
10674: main(): Communicated the solution
10674: free_graph_solution: freed 2 nodes.
10674: free_mb(): Freed message block.
10674: conc with pid 10674 terminates normally
10673:
sink_write(): try write to file standard output
10673: memory_free: pool=0x55e66dbfa080 pos = 0, begin=0 end=0
10673: Wrote 0 total bytes
10673: Buffers allocated: 0 Freed: 0
10673: Allocated buffer 0 to 0x7f43a3088010
10673: Source buffer(0) returns pool 0(0x7f43a3088010) o=0 l=1048576 a=0x7f43a3088010
10673: Read 0 out of 1048576 bytes from standard input data=[]
10673:
sink_write(): try write to file standard output
10673: Sink buffer(0-0) returns pool 0((nil)) o=0 l=0 a=(nil) for input fd: standard input
10673:
sink_write(): sink buffer returned 0 bytes to write
10673: Wrote 0 out of 0 bytes for file standard output pos_written=0 data=[]
10673: memory_free: pool=0x55e66dbfa080 pos = 0, begin=0 end=0
10673: Wrote 0 total bytes
10673: Retiring file standard output pos_written=pos_to_write=0 source_pos_read=0
dgsh: line 1: 10674 Done dgsh-conc -o -n 1
10675 | dgsh-conc -i 1
10676 Terminated | cat
10672: Completed waiting for pid: 10676
10672: exit switch for command: 4
10672: exec_result: 143
10672: last command exit value: 143
10672: return exec_result: 143
10672: exit switch for command: 6
10672: exec_result: 143
10672: last command exit value: 143
10672: dgsh command returns 143
10672: exit switch for command: 10
10672: exec_result: 143
10672: last command exit value: 143
10672: last_command_exit_value: 143, s: 1
10670: Completed waiting for pid: 10673
10670: exit switch for command: 4
10670: exec_result: 0
10670: last command exit value: 0
10670: return exec_result: 0
10670: exit switch for command: 6
10670: exec_result: 0
10670: last command exit value: 0
10670: exit shell: status 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment