erebe / wstunnel

Tunnel all your traffic over Websocket or HTTP2 - Bypass firewalls/DPI - Static binary available
Other
3.22k stars 290 forks source link

Server segfault #42

Closed leshniak closed 4 years ago

leshniak commented 4 years ago

v2.0 server quickly crashes with SIGSEGV on Raspbian Buster while running as SOCKS5 proxy. Looks like it works only for small, single requests.

erebe commented 4 years ago

I know there is some trouble now on ARM, something changed, what ?, and some people experience segfault at startup or run, must be due to musl libc. I need to make another build for ARM.

leshniak commented 4 years ago

If you need any help with testing, I can check the new build on my RPi 4.

erebe commented 4 years ago

I will try to do a new one this weekend, stay tuned

leshniak commented 4 years ago

@erebe thanks for the new release, but for armv7l it doesn't look like a wstunnel executable:


wstunnel: unknown RTS option: -qb
wstunnel: unknown RTS option: -qg
wstunnel:
wstunnel: Usage: <prog> <args> [+RTS <rtsopts> | -RTS <args>] ... --RTS <args>
wstunnel:
wstunnel:    +RTS    Indicates run time system options follow
wstunnel:    -RTS    Indicates program arguments follow
wstunnel:   --RTS    Indicates that ALL subsequent arguments will be given to the
wstunnel:            program (including any of these RTS flags)
wstunnel:
wstunnel: The following run time system options are available:
wstunnel:
wstunnel:   -?       Prints this message and exits; the program is not executed
wstunnel:   --info   Print information about the RTS used by this program
wstunnel:
wstunnel:   -K<size>  Sets the maximum stack size (default: 80% of the heap)
wstunnel:             Egs: -K32k -K512k -K8M
wstunnel:   -ki<size> Sets the initial thread stack size (default 1k)  Egs: -ki4k -ki2m
wstunnel:   -kc<size> Sets the stack chunk size (default 32k)
wstunnel:   -kb<size> Sets the stack chunk buffer size (default 1k)
wstunnel:
wstunnel:   -A<size>  Sets the minimum allocation area size (default 1m) Egs: -A20m -A10k
wstunnel:   -AL<size> Sets the amount of large-object memory that can be allocated
wstunnel:             before a GC is triggered (default: the value of -A)
wstunnel:   -n<size>  Allocation area chunk size (0 = disabled, default: 0)
wstunnel:   -O<size>  Sets the minimum size of the old generation (default 1M)
wstunnel:   -M<size>  Sets the maximum heap size (default unlimited)  Egs: -M256k -M1G
wstunnel:   -H<size>  Sets the minimum heap size (default 0M)   Egs: -H24m  -H1G
(...)```
erebe commented 4 years ago

@leshniak I haven't built anything for arm up until today, what binary did you used ?

Can you try this release https://github.com/erebe/wstunnel/releases/download/v3.0/wstunnel-armv7l-raspbian.tar.gz and let me know the outcome ? I can't build static binary on arm anymore, so I built one specifically for raspbian.

leshniak commented 4 years ago

I've just pasted the output. Looks like some haskell stuff.

leshniak commented 4 years ago

That was the binary that you linked above. I've just tested it few seconds before your comment.

erebe commented 4 years ago

let me check, that some run time parameter of haskell

erebe commented 4 years ago

Can you try out again https://github.com/erebe/wstunnel/releases/download/v3.0/wstunnel-armv7l-raspbian.tar.gz, I updated it, should be better

leshniak commented 4 years ago

Now is ok and looks stable comparing to release v2.0 ;). Thank you!