On Mon, Aug 8, 2016 at 2:47 PM, Andy Zhou <az...@ovn.org> wrote: > > > On Mon, Aug 8, 2016 at 6:48 AM, Kyle Mestery <mest...@mestery.com> wrote: >> >> While running the ovn-scale-test [1] port-binding tests [2], I notice a >> continual stream of messages such as this: >> >> 2016-08-04 13:05:28.705 547 INFO rally_ovs.plugins.ovs.scenarios.ovn [-] >> bind lport_0996bf_cikzNO to sandbox-172.16.200.24 on >> ovn-farm-node-uat-dal09-compute-325 >> 2016-08-04 13:05:28.712 547 INFO paramiko.transport [-] Connected (version >> 2.0, client OpenSSH_6.6.1p1) >> 2016-08-04 13:05:28.805 547 INFO paramiko.transport [-] Authentication >> (publickey) successful! >> 2016-08-04T13:05:28Z|00002|vsctl|WARN|/proc/0/cmdline: open failed (No >> such file or directory) >> 2016-08-04T13:05:29Z|00002|vsctl|WARN|/proc/0/cmdline: open failed (No >> such file or directory) >> 2016-08-04 13:05:29.042 547 INFO rally_ovs.plugins.ovs.scenarios.ovn [-] >> bind lport_0996bf_tvovcK to sandbox-172.16.200.24 on >> ovn-farm-node-uat-dal09-compute-325 >> 2016-08-04T13:05:29Z|00002|vsctl|WARN|/proc/0/cmdline: open failed (No >> such file or directory) >> 2016-08-04T13:05:29Z|00002|vsctl|WARN|/proc/0/cmdline: open failed (No >> such file or directory) >> 2016-08-04 13:05:29.285 547 INFO rally_ovs.plugins.ovs.scenarios.ovn [-] >> bind lport_0996bf_HwG7AK to sandbox-172.16.200.24 on >> ovn-farm-node-uat-dal09-compute-325 >> 2016-08-04T13:05:29Z|00002|vsctl|WARN|/proc/0/cmdline: open failed (No >> such file or directory) >> 2016-08-04T13:05:29Z|00002|vsctl|WARN|/proc/0/cmdline: open failed (No >> such file or directory) >> 2016-08-04 13:05:29.505 547 INFO rally_ovs.plugins.ovs.scenarios.ovn [-] >> bind lport_0996bf_Lqbv92 to sandbox-172.16.200.24 on >> ovn-farm-node-uat-dal09-compute-325 >> 2016-08-04T13:05:29Z|00002|vsctl|WARN|/proc/0/cmdline: open failed (No >> such file or directory) >> 2016-08-04T13:05:29Z|00002|vsctl|WARN|/proc/0/cmdline: open failed (No >> such file or directory) >> 2016-08-04 13:05:29.724 547 INFO rally_ovs.plugins.ovs.scenarios.ovn [-] >> bind lport_0996bf_6f8uQW to sandbox-172.16.200.24 on >> ovn-farm-node-uat-dal09-compute-325 >> 2016-08-04T13:05:29Z|00002|vsctl|WARN|/proc/0/cmdline: open failed (No >> such file or directory) >> 2016-08-04T13:05:29Z|00002|vsctl|WARN|/proc/0/cmdline: open failed (No >> such file or directory) >> 2016-08-04 13:05:29.944 547 INFO rally_ovs.plugins.ovs.scenarios.ovn [-] >> bind lport_0996bf_nKl2XF to sandbox-172.16.200.24 on >> ovn-farm-node-uat-dal09-compute-325 >> >> Tracing these down, this is due to the check in >> vsctl_parent_process_info(), >> which is verifying if the parent process can be opened. Since >> ovn-scale-test >> runs sandboxes in containers, and these are run as root, there is no >> /proc/0 >> in the container. Thus, the check fails, and the error message is printed >> out. >> It's unclear what value this log message provides, so removing it clears >> up >> this problem and is probably the best option. >> >> [1] https://github.com/openvswitch/ovn-scale-test >> [2] >> https://github.com/openvswitch/ovn-scale-test/blob/master/rally_ovs/plugins/ovs/scenarios/ovn.py#L255 >> >> Signed-off-by: Kyle Mestery <mest...@mestery.com> >> > > > Thanks for the v2. > > Acked-by: Andy Zhou <az...@ovn.org> > > Since one aspect of the issue is about access to /proc/0, which does not > exist in a non-container evironment as well, I'd like to > fold in the following incremental as well. What do you think? >
Works for me, thanks Andy! > > diff --git a/utilities/ovs-vsctl.c b/utilities/ovs-vsctl.c > index 06b7e46..2ef8824 100644 > --- a/utilities/ovs-vsctl.c > +++ b/utilities/ovs-vsctl.c > @@ -2474,29 +2474,37 @@ vsctl_parent_process_info(void) > { > #ifdef __linux__ > pid_t parent_pid; > - char *procfile; > struct ds s; > - FILE *f; > > parent_pid = getppid(); > - procfile = xasprintf("/proc/%d/cmdline", parent_pid); > + ds_init(&s); > + > + /* Retrive the command line of the parent process, except the init > + * process since /proc/0 does not exist. */ > + if (parent_pid != 0) { > + char *procfile; > + FILE *f; > + > + procfile = xasprintf("/proc/%d/cmdline", parent_pid); > > - f = fopen(procfile, "r"); > - if (!f) { > + f = fopen(procfile, "r"); > + if (!f) { > + free(procfile); > + return NULL; > + } > free(procfile); > - return NULL; > - } > - free(procfile); > > - ds_init(&s); > - for (;;) { > - int c = getc(f); > - if (!c || c == EOF) { > + for (;;) { > + int c = getc(f); > + if (!c || c == EOF) { > break; > + } > + ds_put_char(&s, c); > } > - ds_put_char(&s, c); > + fclose(f); > + } else { > + ds_put_cstr(&s, "init"); > } > - fclose(f); > > ds_put_format(&s, " (pid %d)", parent_pid); > > -- > 1.9.1 > > > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev