What's new

My experience with the RT-AC86U

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

Here's what goes to mynvramerror.log on my device:
Code:
...
3680
^[[H^[[J0 0 0 0 0
3681
^[[H^[[J0 0 0 0 0
3682
^[[H^[[J0 0 0 0 0
3683
^[[H^[[J0 0 0 0 0
3684
^[[H^[[J0 0 0 0 0
3685
^[[H^[[J0 0 0 0 0
3686
Stuck at 3686. Interesting to try though.
It really looks like a blocked operation by hardware with no timeout around it.
 
Here's the log from where it hung at 8877... nothing to go on. Again, really good thinking!

View attachment 41834
I like @Maverickcdn suggestion the best, but if you don't mind some extra troubleshooting, give this a try please.

Code:
#!/bin/sh
trap '' HUP INT QUIT ABRT TERM
(i="0"
while true; do 
  i="$(( i + 1 ))"
  state1="$(nvram get vpn_client1_state)" 
  state2="$(nvram get vpn_client2_state)"
  state3="$(nvram get vpn_client3_state)"
  state4="$(nvram get vpn_client4_state)"
  state5="$(nvram get vpn_client5_state)"
  clear
  echo "$state1" "$state2" "$state3" "$state4" "$state5"
  echo "$i"
done)&>/tmp/mynvramerror.log &

exit 0
 
Last edited:
Doh, just realized FW version (user upgrade) can be dynamic though so Ill need to come up with a way to periodically update that if needed... just food for thought when you're thinking about static/dynamic values
 
I like @Maverickcdn suggestion the best, but if you don't mind some extra troubleshooting, give this a try please.

Code:
#!/bin/sh 
nohup (i="0"
while true; do 
  i="$(( i + 1 ))"
  state1="$(nvram get vpn_client1_state)" 
  state2="$(nvram get vpn_client2_state)"
  state3="$(nvram get vpn_client3_state)"
  state4="$(nvram get vpn_client4_state)"
  state5="$(nvram get vpn_client5_state)"
  clear
  echo "$state1" "$state2" "$state3" "$state4" "$state5"
  echo "$i"
done)&>/tmp/mynvramerror.log &

exit 0
I also got a way to troubleshoot with trapping signals the router may be sending, but I think we are getting stuck on hangup.
 
I like @Maverickcdn suggestion the best, but if you don't mind some extra troubleshooting, give this a try please.

Code:
#!/bin/sh
nohup (i="0"
while true; do
  i="$(( i + 1 ))"
  state1="$(nvram get vpn_client1_state)"
  state2="$(nvram get vpn_client2_state)"
  state3="$(nvram get vpn_client3_state)"
  state4="$(nvram get vpn_client4_state)"
  state5="$(nvram get vpn_client5_state)"
  clear
  echo "$state1" "$state2" "$state3" "$state4" "$state5"
  echo "$i"
done)&>/tmp/mynvramerror.log &

exit 0

It didn't seem to like this:

nvrampoc.sh: line 2: syntax error: unexpected word (expecting ")")
 
I also got a way to troubleshoot with trapping signals the router may be sending, but I think we are getting stuck on hangup.
How about running it like:

Code:
nohup sh nvrampoc.sh

and leaving the error log in the code from your previous version?
 
How about running it like:

Code:
nohup sh nvrampoc.sh

and leaving the error log in the code from your previous version?
So here's the results of that... the script locked at 813, and the nohup.out file is blank.
 
You could try that, but first scroll back to previous post and use my revised version without nohup.
OK... just tried that... locked at 2933... nothing in the error log.

1655149664027.png
 
I think SomeWhereOverTheRainBow meant the trap version.
trap '' HUP INT QUIT ABRT TERM
The log is different now.
...
148
^[[H^[[J0 0 0 0 0
149
^[[H^[[J0 0 0 0 0
150
^[[H^[[J0 0 0 0 0
151
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^>
0^M 0^M 0^M 0^M
2753^M
./loop.sh: line 24: ^M: not found
./loop.sh: line 24: ^M: not found
./loop.sh: line 24: clear^M: not found
0^M 0^M 0^M 0^M
2754^M
./loop.sh: line 24: ^M: not found
./loop.sh: line 24: ^M: not found
./loop.sh: line 24: clear^M: not found
0^M 0^M 0^M 0^M
2755^M
...
2898^M
./loop.sh: line 24: ^M: not found
./loop.sh: line 24: ^M: not found
./loop.sh: line 24: clear^M: not found
0^M 0^M 0^M 0^M
2899^M
./loop.sh: line 24: ^M: not found
./loop.sh: line 24: ^M: not found
./loop.sh: line 24: clear^M: not found
0^M 0^M 0^M 0^M
2900^M
./loop.sh: line 24: ^M: not found
./loop.sh: line 24: ^M: not found
./loop.sh: line 24: clear^M: not found
0^M 0^M 0^M 0^M
2901^M
./loop.sh: line 24: ^M: not found
./loop.sh: line 24: ^M: not found
The change starts from iteration 150-151 and then goes on for some time with "^M: not found" messages until it freezes at 2901.

P. S. Line 24 in my script is this one:
done)&>/tmp/mynvramerror.log &
I just put some comments in the beginning, because I didn't want to submit indefinite script and limited to 5000 iterations. The executable part was this:
Bash:
trap '' HUP INT QUIT ABRT TERM
(i=0
while [ $i -le 5000 ]; do
  i=$(( i + 1 ))
  state1="$(nvram get vpn_client1_state)"
  state2="$(nvram get vpn_client2_state)"
  state3="$(nvram get vpn_client3_state)"
  state4="$(nvram get vpn_client4_state)"
  state5="$(nvram get vpn_client5_state)"
  clear
  echo "$state1" "$state2" "$state3" "$state4" "$state5"
  echo "$i"
done)&>/tmp/mynvramerror.log &

exit 0
 

Attachments

  • mynvramerror.log.txt
    353.1 KB · Views: 58
Last edited:
Did you use my revised version in the edited post?
Yup. I have a feeling we're dealing with something extremely low-level here. I'm just glad the timeout function is able to get past it. Not sure if this is worthy to bring up with RMerlin, and seeing if he would think it's worth pursuing sending this over to his contacts at Asus, or if there's a way for us submit a bug report? It's highly likely they probably already know about this, and either (a) won't do anything about it, or (b) can't do anything about it.
 
I think SomeWhereOverTheRainBow meant the trap version.
trap '' HUP INT QUIT ABRT TERM
The log is different now.

The change starts from iteration 150-151 and then goes on for some time with "^M: not found" messages until it freezes at 2901.
That's the version I ran as well, and didn't get all the fancy stuff in my error log. Running it again.

1655150547075.png

Just locked at 2309. Nothing fancy in the error log like @Oracle saw.
 
Try this

Code:
#!/bin/sh
trap '' HUP INT QUIT ABRT TERM
(i="0"
while true; do 
  i="$(( i + 1 ))"
  for nv in 1 2 3 4 5; do unset "state$nv"; done
  state1="$(nvram get vpn_client1_state)" 
  state2="$(nvram get vpn_client2_state)"
  state3="$(nvram get vpn_client3_state)"
  state4="$(nvram get vpn_client4_state)"
  state5="$(nvram get vpn_client5_state)"
  clear
  echo "$state1" "$state2" "$state3" "$state4" "$state5"
  echo "$i"
done)&>/tmp/mynvramerror.log &

exit 0
 
Try this

Code:
#!/bin/sh
trap '' HUP INT QUIT ABRT TERM
(i="0"
while true; do
  i="$(( i + 1 ))"
  for nv in 1 2 3 4 5; do unset "state$nv"; done
  state1="$(nvram get vpn_client1_state)"
  state2="$(nvram get vpn_client2_state)"
  state3="$(nvram get vpn_client3_state)"
  state4="$(nvram get vpn_client4_state)"
  state5="$(nvram get vpn_client5_state)"
  clear
  echo "$state1" "$state2" "$state3" "$state4" "$state5"
  echo "$i"
done)&>/tmp/mynvramerror.log &

exit 0
It barely got out of the gate on this try...

1655152004055.png
 
I can't reproduce that log with the not found messages. The loop just hangs up very early, few hundred iterations max. The one certain thing is, given enough iterations, it fails - guaranteed.

I would submit an error report to Asus for this. That's what I'm trained to do: find something wrong - report it to the people in charge.

See all the special characters from the log in the attachment.
 

Attachments

  • AC86Ugetnvramlog.png
    AC86Ugetnvramlog.png
    66.7 KB · Views: 60
Last edited:
I can't reproduce that log with the not found messages. The loop just hangs up very early, few hundred iterations max. The one certain thing is, given enough iterations, it fails - guaranteed.

I would submit an error report to Asus for this. That's what I'm trained to do: find something wrong - report it to the people in charge.
I got a couple of other ideas that haven't been explored but I am coming up short from my cellphone at the job.
 
I can't reproduce that log with the not found messages. The loop just hangs up very early, few hundred iterations max. The one certain thing is, given enough iterations, it fails - guaranteed.

I would submit an error report to Asus for this. That's what I'm trained to do: find something wrong - report it to the people in charge.

See all the special characters from the log in the attachment.
I wonder why your 86U produces these weird results in the log, yet mine doesn't? Could there be a slight variation in the hardware somewhere?
 
I got a couple of other ideas that haven't been explored but I am coming up short from my cellphone at the job.
You certainly earned the gold star of the day for coming up with creative troubleshooting solutions!! :cool:
 
I cannot quite explain how my log ended up like this but it must have something to do with my Windows machine.

I mean - look at the carriage return symbols. I think I have spoiled the script with an accidental CR character. Possibly the 2 parts of the log are concatenated from 2 different runs and one of them is a broken script.
 

Similar threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top