PGNd
2014-Aug-21 14:28 UTC
SW segfault on 'tcstart' exec of external QoS/tc script; debug?
I'm adapting an external ToS script I've used previously, standalone,
https://github.com/k0smik0/e-hfsc
for use in Shorewall (4.6.2.5).
I've modified its vars to use values from /params, changed use of
'tc' -> 'tun_tc', etc, and added it to lib.private as
qos_control() {
...
case "$1" in
status)
status
exit
;;
stop)
delete_for_uplink
delete_for_downlink
exit
;;
start)
set_rules_for_uplink
set_rules_for_downlink
exit
;;
restart)
delete_for_uplink
delete_for_downlink
set_rules_for_uplink
set_rules_for_downlink
exit
;;
*)
echo "$(basename $0) start|stop|status|restart"
exit
;;
esac
}
I mod'd SW conf to use an external script
/shorewall.conf
...
CLEAR_TC=Yes
TC_ENABLED=Yes
TC_EXPERT=No
...
and invoke it as
/tcstart
qos_control start
/tcstop
qos_control stop
On local-compile/remote-push of the script, @tcstart segfaults
...
Adding Providers...
Setting up Traffic Control...
Processing /usr/local/etc/shorewall/tcstart user exit ...
/usr/share/shorewall/lib.common: line 113: 30099 Segmentation fault
$SHOREWALL_SHELL $script $options $@
where
cat /usr/share/shorewall/lib.common
#
# Do required exports or create the required option string and run the passed
script using
# $SHOREWALL_SHELL
#
113 run_it() {
local script
local options
The unmodified script works outside of SW; the mod'd script segfaults when
exec'd from inside of SW.
How do I get at the right SW debug info *locally* to determine what's
causing that segfault on the *remote* @tcstart?
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/