Andy Kurth created VCL-1056:
-------------------------------
Summary: Add checks/workarounds in iptables.pm if command fails
because another process holds an xtables lock
Key: VCL-1056
URL: https://issues.apache.org/jira/browse/VCL-1056
Project: VCL
Issue Type: Improvement
Components: vcld (backend)
Reporter: Andy Kurth
Assignee: Andy Kurth
Fix For: 2.5
The backend iptables.pm module will only attempt a single iptables operation at
a time. However, if some external process is performing an iptables operation
the following problems may occur:
{noformat}
iptables.pm:get_table_info|1602| ---- WARNING ----
iptables.pm:get_table_info|1602| 2017-06-23
14:28:25iptables.pm:get_table_info|1602|failed to list rules from 'filter'
table on vcl-dc2-98-37.cjmattin, exit status: 4, command:
iptables.pm:get_table_info|1602| /sbin/iptables --list-rules --table filter
iptables.pm:get_table_info|1602| output:
iptables.pm:get_table_info|1602| Another app is currently holding the xtables
lock. Perhaps you want to use the -w option?
{noformat}
{noformat}
iptables.pm:create_chain|1221| ---- WARNING ----
iptables.pm:create_chain|1221| 2017-06-23
14:28:25iptables.pm:create_chain|1221|failed to create 'vcl-post_load' chain in
'filter' table on vcl-dc2-98-37.cjmattin, exit status: 4, command:
iptables.pm:create_chain|1221| /sbin/iptables --new-chain vcl-post_load --table
filter
iptables.pm:create_chain|1221| output:
iptables.pm:create_chain|1221| Another app is currently holding the xtables
lock. Perhaps you want to use the -w option?
{noformat}
{noformat}
iptables.pm:_insert_rule|782| ---- WARNING ----
iptables.pm:_insert_rule|782| 2017-06-23
14:28:25iptables.pm:_insert_rule|782|failed to add iptables rule to INPUT chain
in filter table on vcl-dc2-98-37.cjmattin, exit status: 4, command:
iptables.pm:_insert_rule|782| /sbin/iptables --insert INPUT --table filter
--jump vcl-post_load --match comment --comment "VCL: jump to rules added during
the post-load stage (2017-06-23 14:28:25)"
iptables.pm:_insert_rule|782| output:
iptables.pm:_insert_rule|782| Another app is currently holding the xtables
lock. Perhaps you want to use the -w option?
{noformat}
I have seen this on an image which is using Puppet for additional configuration.
The -w option does this:
{panel}
-w, --wait \[seconds\]
Wait for the xtables lock. To prevent multiple instances of the
program from running concurrently, an attempt will be made to obtain an
exclusive lock at launch. By default, the program will exit if the lock
cannot be obtained. This
option will make the program wait (indefinitely or for optional
seconds) until the exclusive lock can be obtained.
{panel}
We cannot simply add the -w option to every iptables command because earlier
versions of iptables do not support it. A check for _-w option_ in the output
could be added. If it is present, try again with _-w_.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)