Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fatal error: mlock failed #6

Closed
martinvonwittich opened this issue Dec 1, 2020 · 1 comment
Closed

fatal error: mlock failed #6

martinvonwittich opened this issue Dec 1, 2020 · 1 comment

Comments

@martinvonwittich
Copy link

When I setup Firefox to use nordvpn-proxy as a SOCKS proxy, nordvpn-proxy quickly dies with the following error message:

runtime: mlock of signal stack failed: 12                                                                                                                                   
runtime: increase the mlock limit (ulimit -l) or                                                                                                                            
runtime: update your kernel to 5.3.15+, 5.4.2+, or 5.5+                                                                                                                     
fatal error: mlock failed                                                                                                                                                   
                                                                                                                                                                            
runtime stack:                                                                                                                                                              
runtime.throw(0xb9545e, 0xc)                                                                                                                                                
        /usr/local/go/src/runtime/panic.go:1112 +0x72                                                                                                                       
runtime.mlockGsignal(0xc000d34c00)                                                                                                                                          
        /usr/local/go/src/runtime/os_linux_x86.go:72 +0x107                                                                                                                 
runtime.mpreinit(0xc000d3f880)                                                                                                                                              
        /usr/local/go/src/runtime/os_linux.go:341 +0x78                                                                                                                     
runtime.mcommoninit(0xc000d3f880)                                                                                                                                           
        /usr/local/go/src/runtime/proc.go:630 +0x108                                                                                                                        
runtime.allocm(0xc00003d000, 0xbc1f28, 0x782579f7fd00)                                                                                                                      
        /usr/local/go/src/runtime/proc.go:1390 +0x14e                                                                                                                       
runtime.newm(0xbc1f28, 0xc00003d000)                                                                                                                                        
        /usr/local/go/src/runtime/proc.go:1704 +0x39                                                                                                                        
runtime.startm(0x0, 0xc0003b2101)                                                                                                                                           
        /usr/local/go/src/runtime/proc.go:1869 +0x12a                                                                                                                       
runtime.wakep(...)                                                                                                                                                          
        /usr/local/go/src/runtime/proc.go:1953                                                                                                                              
runtime.resetspinning()                                                                                                                                                     
        /usr/local/go/src/runtime/proc.go:2415 +0x93                                                                                                                        
runtime.schedule()                                                                                                                                                          
        /usr/local/go/src/runtime/proc.go:2527 +0x2de                                                                                                                       
runtime.park_m(0xc000ba5b00)                                                                                                                                                
        /usr/local/go/src/runtime/proc.go:2690 +0x9d                                                                                                                        
runtime.mcall(0x800000)                                                                                                                                                     
        /usr/local/go/src/runtime/asm_amd64.s:318 +0x5b                                                                                                                     
                                                                                                                                                                            
goroutine 1 [chan receive]:                                                                                                                                                 
main.wait(0xc000f74e90, 0xbc18d8, 0xc000310090)                                                                                                                             
        /builds/nordvpn/apps-source/linux-app/src/cmd/daemon/wait.go:17 +0xbd                                                                                               
main.main()                                                                                                                                                                 
        /builds/nordvpn/apps-source/linux-app/src/cmd/daemon/main.go:153 +0xb64                                                                                             
[pages of pages of stack traces...]
2020-12-01 23:50:03,582 ERROR [rusty_socks::connection] Cannot assign requested address (os error 99)                                                                       
2020-12-01 23:50:03,583 ERROR [rusty_socks::connection] Cannot assign requested address (os error 99)                                                                       
2020-12-01 23:50:03,667 ERROR [rusty_socks::connection] Cannot assign requested address (os error 99)                                                                       
2020-12-01 23:50:03,669 ERROR [rusty_socks::connection] Cannot assign requested address (os error 99)                                                                       
2020-12-01 23:50:03,832 ERROR [rusty_socks::connection] Cannot assign requested address (os error 99)                                                                       
2020-12-01 23:50:03,833 ERROR [rusty_socks::connection] Cannot assign requested address (os error 99)                                                                       
2020-12-01 23:50:03,961 ERROR [rusty_socks::connection] Cannot assign requested address (os error 99)                                                                       
2020-12-01 23:50:03,962 ERROR [rusty_socks::connection] Cannot assign requested address (os error 99)                                                                       
2020-12-01 23:50:04,134 ERROR [rusty_socks::connection] Cannot assign requested address (os error 99)                                                                       
2020-12-01 23:50:04,135 ERROR [rusty_socks::connection] Cannot assign requested address (os error 99)                                                                       
2020-12-01 23:50:04,170 ERROR [rusty_socks::connection] Cannot assign requested address (os error 99)                                                                       
2020-12-01 23:50:04,171 ERROR [rusty_socks::connection] Cannot assign requested address (os error 99)                                                                       

Apparently this is a golang workaround for a kernel bug which is probably hampered by Docker restrictions. I was able to resolve this by adding --cap-add IPC_LOCK to the docker run command line. Might be worth a note in the docs.

@twitchax
Copy link
Owner

twitchax commented Dec 2, 2020

Cool: will do!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants