mobile_nebula icon indicating copy to clipboard operation
mobile_nebula copied to clipboard

[Android] "Nebula keeps stopping"

Open dmanriqu opened this issue 3 years ago • 16 comments

In the Android app, after configuring and trying to connect I got a message that says "Nebula keeps stopping." I'm using Android 7.1.2 on a Motorola Moto Z. I'm pasting some logcat output in case is useful:

--------- beginning of crash
07-31 15:36:21.908  7163  7163 F libc    : Fatal signal 6 (SIGABRT), code -6 in tid 7163 (ula:nebulaVpnBg)
07-31 15:36:21.977  7255  7255 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-31 15:36:21.977  7255  7255 F DEBUG   : LineageOS Version: '14.1-20191209-UNOFFICIAL-addison'
07-31 15:36:21.977  7255  7255 F DEBUG   : Build fingerprint: 'motorola/addison/addison:7.1.1/NPNS26.118-22-1/1:user/release-keys'
07-31 15:36:21.977  7255  7255 F DEBUG   : Revision: '0'
07-31 15:36:21.977  7255  7255 F DEBUG   : ABI: 'arm'
07-31 15:36:21.977  7255  7255 F DEBUG   : pid: 7163, tid: 7163, name: ula:nebulaVpnBg  >>> net.defined.mobile_nebula:nebulaVpnBg <<<
07-31 15:36:21.978  7255  7255 F DEBUG   : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
07-31 15:36:21.978  7255  7255 F DEBUG   :     r0 00000000  r1 00001bfb  r2 00000006  r3 00000008
07-31 15:36:21.978  7255  7255 F DEBUG   :     r4 00001bfb  r5 00000000  r6 00000002  r7 0000010c
07-31 15:36:21.978  7255  7255 F DEBUG   :     r8 00000007  r9 00000002  sl 3f400380  fp 92d23800
07-31 15:36:21.978  7255  7255 F DEBUG   :     ip 00000005  sp 3f4dd62c  lr 923f8160  pc 9241738c  cpsr 600b0010
07-31 15:36:21.978  7255  7255 F DEBUG   :
07-31 15:36:21.978  7255  7255 F DEBUG   : backtrace:
07-31 15:36:21.978  7255  7255 F DEBUG   :     #00 pc 0007438c /data/app/net.defined.mobile_nebula-1/split_config.armeabi_v7a.apk (offset 0xdb7000)
07-31 15:36:21.978  7255  7255 F DEBUG   :     #01 pc 0005515c /data/app/net.defined.mobile_nebula-1/split_config.armeabi_v7a.apk (offset 0xdb7000)
07-31 15:36:22.469  2761  2912 I chatty  : uid=1000(system) FileObserver expire 1 line
07-31 15:36:22.489  2307  3110 D NetlinkEvent: Unknown ifindex 28 in RTM_DELADDR
07-31 15:36:23.598  7443  7443 E AndroidRuntime: FATAL EXCEPTION: main
07-31 15:36:23.598  7443  7443 E AndroidRuntime: Process: net.defined.mobile_nebula:nebulaVpnBg, PID: 7443
07-31 15:36:23.598  7443  7443 E AndroidRuntime: java.lang.RuntimeException: Unable to start service net.defined.mobile_nebula.NebulaVpnService@80269e2 with null: java.lang.NullPointerException
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3368)
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     at android.app.ActivityThread.-wrap21(ActivityThread.java)
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1601)
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102)
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     at android.os.Looper.loop(Looper.java:154)
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:6186)
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
07-31 15:36:23.598  7443  7443 E AndroidRuntime: Caused by: java.lang.NullPointerException
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     at java.io.File.<init>(File.java:262)
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     at net.defined.mobile_nebula.NebulaVpnService.onStartCommand(NebulaVpnService.kt:67)
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3351)
07-31 15:36:23.598  7443  7443 E AndroidRuntime:     ... 8 more

dmanriqu avatar Jul 31 '21 22:07 dmanriqu

I'm experiencing the same warning dialog but potentially for an unrelated issue - it seems Nebula uses all of the phone's RAM? When I launch my browser and try to load content from a Nebula IP I'm sometimes returned to the home screen, my browser is killed, my music app is killed (audio stops), and Nebula has disconnected with the dialog "Nebula keeps stopping". It feels like a resource issue if it's causing other apps to crash? Not sure how to debug since this is stock Android 9.0

nettybun avatar Oct 25 '21 04:10 nettybun

Same here, Android 8.0.0 on a samsung galaxy A3. Configuration can be done successfully, but as soon as I try to connect the app repeatedly crashes.

waldner avatar May 05 '22 18:05 waldner

@dmanriqu @heyheyhello @waldner We just released a new version, v0.2.0, which includes some bugfixes for stability on Android. Please let us know if you continue to have issues.

johnmaguire avatar Nov 22 '22 22:11 johnmaguire

Nothing changed for me even with v0.2.0.

waldner avatar Nov 24 '22 09:11 waldner

Nothing changed for me even with v0.2.0.

@waldner Thanks for trying. After the crash, if you click on the site and then "View Logs" do you see any output?

Are you able to obtain logcat output of the crash by chance?

johnmaguire avatar Nov 24 '22 15:11 johnmaguire

App logs:

time="2022-11-24T20:43:08Z" level=info msg="Firewall rule added" firewallRule="map[caName: caSha: direction:outgoing endPort:0 groups:[] host:any ip: proto:0 startPort:0]"
time="2022-11-24T20:43:08Z" level=info msg="Firewall started" firewallHash=b6eef9a546df4160c507a1c6409465df04ecf536f4338191121437632002f187
time="2022-11-24T20:43:08Z" level=info msg="Main HostMap created" network=192.168.44.199/24 preferredRanges="[]"
time="2022-11-24T20:43:08Z" level=info msg="UDP hole punching enabled"

Logcat output (obtained with logcat --pid=$(pidof -s net.defined.mobile_nebula), I hope I got it right): attached. logcat.txt

waldner avatar Nov 24 '22 21:11 waldner

Hi @waldner - thanks for the logs.

Are you seeing any errors reported for the site? Would you be willing to share the raw config? You can view it by tapping on the site, then "Configuration," then "Advanced" and finally "View rendered config."

johnmaguire avatar Nov 28 '22 22:11 johnmaguire

No message on any of the lighthouses when trying to connect from android. Here's the raw android config (slightly edited to change hostnames and remove certificate content, even if it's public):

pki:
  ca: |
    -----BEGIN NEBULA CERTIFICATE-----
    ...
    -----END NEBULA CERTIFICATE-----
  cert: |
    -----BEGIN NEBULA CERTIFICATE-----
    ...
    -----END NEBULA CERTIFICATE-----
  key: <hidden>
  blacklist: []
static_host_map:
  192.168.44.1:
  - host1.example.com:4242
  192.168.44.2:
  - host2.example.com:4242
  192.168.44.3:
  - host3.example.com:4242
  192.168.44.4:
  - host4.example.com:4242
  192.168.44.200:
  - host5.example.com:4242
lighthouse:
  am_lighthouse: false
  serve_dns: false
  dns:
    host: ""
    port: 0
  interval: 0
  hosts:
  - 192.168.44.200
  - 192.168.44.1
  - 192.168.44.2
  - 192.168.44.3
  - 192.168.44.4
listen:
  host: 0.0.0.0
  port: 0
  batch: 64
  read_buffer: 0
  write_buffer: 0
punchy:
  punch: true
  respond: false
  delay: 1s
cipher: aes
local_range: ""
sshd:
  enabled: false
  listen: ""
  host_key: ""
  authorized_users: []
tun:
  dev: tun1
  drop_local_broadcast: true
  drop_multicast: true
  tx_queue: 500
  mtu: 1300
  routes: []
  unsafe_routes: []
logging:
  level: info
  format: text
stats:
  type: ""
  interval: ""
  prefix: ""
  protocol: ""
  host: ""
  listen: ""
  path: ""
  namespace: ""
  subsystem: ""
handshakes:
  try_interval: 100ms
  retries: 20
  wait_rotation: 5
firewall:
  conntrack:
    tcp_timeout: 120h
    udp_timeout: 3m
    default_timeout: 10m
    max_connections: 100000
  outbound:
  - port: any
    proto: any
    host: any
  inbound: []
relays:
  use_relays: true

waldner avatar Nov 30 '22 18:11 waldner

have you had it connnect before? can you try setting up a lighthouse that has a fixed IP rather than using the redirection of the DNS hostname?

jasikpark avatar Nov 30 '22 18:11 jasikpark

same issue here, using Android 9 on Moto G6

b177y avatar Nov 30 '22 22:11 b177y

Same behavior with Android 12 on a Motorola G Pure. Tried with a static IP as the lighthouse as well. No change in behavior. My configuration is identical to the one posted above with the obvious exceptions for the certificates/keys and lighthouse host/IP.

atdotio avatar Nov 30 '22 22:11 atdotio

I never got it to connect. And using IPs instead of DNS names for the lighthouses does not help unfortunately.

waldner avatar Nov 30 '22 22:11 waldner

do you have any other vpns running at the same time? just for a sanity check ;p

jasikpark avatar Nov 30 '22 23:11 jasikpark

Definitely do not have another VPN running at the same time during my tests. If I do, it instead presents a dialog telling me to grant Nebula VPN permissions when prompted (for what it's worth, it does nothing of the sort).

atdotio avatar Nov 30 '22 23:11 atdotio

A bit late to the party but here I am :) I'm running Nebula version 0.2.0 on an m8 powered by DivestOS 18.1 (Android 11) and Nebula keeps crashing when I try to connect. The VPN icon appears briefly then disappears as you can see from the video below. Here's my config file:

pki:
  ca: |
    -----BEGIN NEBULA CERTIFICATE-----
    AjUKAXhvZAjLXqAXBjD7XbA9BjAXDdAdXwAMAaAkhtAAvXAwXXaXAHXhAXXAXAXM
    A7XXRAZAARJAAXAazdAKXhaJAw+XXLXAMKVXQXX9XAbh/AxXAlZKHVJXTADXWMAV
    wAaXXAAAX9XtXzrXAMXXw9AZ+XAAmdXAAA==
    -----END NEBULA CERTIFICATE-----
  cert: |
    -----BEGIN NEBULA CERTIFICATE-----
    AmUXXm04EgqJAXGAAXA+//XPXgN4XAAo5pmXnwAw+Xm4XQA6XXXAXXlAAAXXeGNO
    UXgAlLlOlrXXX7O60AX6zQR5+shhSXAAXQ4wlXXAmXsuXlXmqXRxXpXXXXNAXUXX
    XAXeXhGAJRJX9OXAXhjXnXj9HXJwUXAMXAA0GsA/XWlXX/XGNXZzA6lXXXhX5nmP
    XgOXRlALXXXlXmXLrwJAAXXEQASnAXAeAX==
    -----END NEBULA CERTIFICATE-----
  key: <hidden>
  blacklist: []
static_host_map:
  192.168.100.1:
  - XXX.XX.XX.196:49159
lighthouse:
  am_lighthouse: false
  serve_dns: false
  dns:
    host: ""
    port: 0
  interval: 60
  hosts:
  - 192.168.100.1
listen:
  host: 0.0.0.0
  port: 49159
  batch: 64
  read_buffer: 0
  write_buffer: 0
punchy:
  punch: true
  respond: false
  delay: 1s
cipher: aes
local_range: ""
sshd:
  enabled: false
  listen: ""
  host_key: ""
  authorized_users: []
tun:
  dev: tun1
  drop_local_broadcast: true
  drop_multicast: true
  tx_queue: 500
  mtu: 1300
  routes: []
  unsafe_routes: []
logging:
  level: debug
  format: text
stats:
  type: ""
  interval: ""
  prefix: ""
  protocol: ""
  host: ""
  listen: ""
  path: ""
  namespace: ""
  subsystem: ""
handshakes:
  try_interval: 100ms
  retries: 20
  wait_rotation: 5
firewall:
  conntrack:
    tcp_timeout: 120h
    udp_timeout: 3m
    default_timeout: 10m
    max_connections: 100000
  outbound:
  - port: any
    proto: any
    host: any
  inbound: []
relays:
  use_relays: true

I couldn't catch anything on Scoop but I've attached a logcat, together with the logs from the app.

logcat.txt

nebula_log.txt

https://user-images.githubusercontent.com/20503185/218952854-7ca3346f-50e0-441b-88a8-0866df35de81.mp4

Ke1i avatar Feb 15 '23 06:02 Ke1i

are there any new theories in this regard. I've just setup a lighthouse an added my system and am running into the same problem. I intend on trying to poke at it this weekend to see if I can't get somewhere with this.

ScriptingDad avatar Mar 09 '24 01:03 ScriptingDad