On Mon, Dec 04, 2017 at 04:59:12PM +0100, gregor herrmann wrote: > On Mon, 04 Dec 2017 22:45:21 +0900, Roger Shimizu wrote: > > > On Mon, Nov 27, 2017 at 5:36 AM, gregor herrmann <[email protected]> wrote: > > > On Sun, 26 Nov 2017 18:42:22 +0000, James Cowgill wrote: > > >> I think you might need a "Restrictions: isolation-container" to get > > >> network access, but that's only a guess. > > > That's not my experience. We have quite a few perl packages where the > > > tests do something networky and haven't experienced problems on > > > ci.debian.net (modulo failing requests to external resources but > > > that's of course a different story). > > Maybe out bound network activity is OK, but not for open tcp port to > > listen, as James said. > > Sorry for being not more clear in my first mail: we also start all > kinds of daemons, either from the package itself or some other > packages (mysql, mariadb, memcached, …), and the tests successfully > connect to them.
You do not need anything Restrictions: to be able to start a daemon or
listen on a local TCP port.
I tried the package locally both under autopkgtest+lxc, and on my host
system, and got the same results as the ones in ci.debian.net, i.e.
stuff like
running test: python tests/test.py -c tests/chacha20-ietf-poly1305.json
* Trying 127.0.0.1...
* TCP_NODELAY set
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0*
SOCKS5 communication to www.google.com:80
* SOCKS5 request granted.
* Connected to 127.0.0.1 (127.0.0.1) port 1081 (#0)
> GET / HTTP/1.1
> Host: www.google.com
> User-Agent: curl/7.57.0
> Accept: */*
>
* Empty reply from server
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Connection #0 to host 127.0.0.1 left intact
curl: (52) Empty reply from server
test failed: python tests/test.py -c tests/chacha20-ietf-poly1305.json
I tried messing with tests/test.py like this:
diff --git a/tests/test.py b/tests/test.py
index 0a1297b..ec8f3e3 100755
--- a/tests/test.py
+++ b/tests/test.py
@@ -60,9 +60,9 @@ if config.client_args:
else:
server_args.extend(config.client_args.split())
-p1 = Popen(server_args, stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True)
-p2 = Popen(client_args, stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True)
-p5 = Popen(tunnel_args, stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True)
+p1 = Popen(server_args, stdin=PIPE, close_fds=True)
+p2 = Popen(client_args, stdin=PIPE, close_fds=True)
+p5 = Popen(tunnel_args, stdin=PIPE, close_fds=True)
p3 = None
p4 = None
p3_fin = False
and discovered that the test server is not listening to the port you think it
is:
| $ ./tests/test.sh
| running test: python tests/test.py -c tests/aes.json
| 2017-12-04 16:07:02 INFO: UDP relay enabled
| 2017-12-04 16:07:02 INFO: initializing ciphers... aes-256-cfb
| 2017-12-04 16:07:02 ERROR: bind: Address already in use
| 2017-12-04 16:07:02 ERROR: bind() error
| 2017-12-04 16:07:02 INFO: initializing ciphers... aes-256-cfb
| 2017-12-04 16:07:02 INFO: listening at 127.0.0.1:1081
| 2017-12-04 16:07:02 INFO: initializing ciphers... aes-256-cfb
| 2017-12-04 16:07:02 INFO: UDP relay enabled
| 2017-12-04 16:07:02 INFO: listening at 127.0.0.1:1082
^^^^
| * Trying 127.0.0.1...
| * TCP_NODELAY set
| % Total % Received % Xferd Average Speed Time Time Time
Current
| Dload Upload Total Spent Left Speed
| 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:--
0* SOCKS5 communication to www.google.com:80
| 2017-12-04 16:07:04 INFO: connect to www.google.com:80
| * SOCKS5 request granted.
| * Connected to 127.0.0.1 (127.0.0.1) port 1081 (#0)
^^^^
| > GET / HTTP/1.1
| > Host: www.google.com
| > User-Agent: curl/7.57.0
| > Accept: */*
| >
| 2017-12-04 16:07:04 ERROR: remote_recv_cb_recv: Connection reset by peer
| * Empty reply from server
| 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
| * Connection #0 to host 127.0.0.1 left intact
| curl: (52) Empty reply from server
| 2017-12-04 16:07:04 INFO: closed gracefully
| test failed: python tests/test.py -c tests/aes.json
Why this happens? Because on autopkgtest, you assume the package is already
*installed*. I assume the the daemon provided by the binary package is already
listening to port 1081, so the test server starts on 1082.
In this case, I think you want connect to the daemon that is already running,
i.e. the one that is provided by the binary package, instead of some daemon
that is started by the test themselves.
the log from
http://debomatic-amd64.debian.net/distribution#unstable/shadowsocks-libev/3.1.1+ds-1/autopkgtest
seems truncated, but I would assume that the chroot being used there is
configured to not start services, what does not model the ideal environment
where you want to run autopkgtest: testbeds that look as much as possible as
regular systems, where daemons are started automatically, etc.
signature.asc
Description: PGP signature

