cristian.ionica
New Around Here
Hi all,
I recently reinstalled spdMerlin and noticed the following error in the log:
After logging more output, I found that ServerID and ServerName were not inserted correctly into the DB. Example insert that failed:
I grabbed the parsed file and saw the issue occurs with this server display name:
During parsing, ServerID resolved to & and ServerName to Digi because of the " (RCS & RDS) " part.
Original:
Updated:
With this change, I now get:
The insert succeeds and no longer throws the SQLite insert error.
I recently reinstalled spdMerlin and noticed the following error in the log:
Code:
Oct 29 00:43:29 AsusRouter spdMerlin: SQLite3 Failure[spd21]: Parse error near line 2: near "&": syntax error /www.speedtest.net/result/10%3A43+PM',859.2,915.3,&,'Digi'); error here ---^
Oct 29 00:43:30 AsusRouter spdMerlin: SQLite3 Failure[spd21]: Parse error near line 2: near "&": syntax error /www.speedtest.net/result/10%3A43+PM',859.2,915.3,&,'Digi'); error here ---^
Oct 29 00:43:31 AsusRouter spdMerlin: SQLite3 Failure[spd21]: Parse error near line 2: near "&": syntax error /www.speedtest.net/result/10%3A43+PM',859.2,915.3,&,'Digi'); error here ---^
Oct 29 00:43:31 AsusRouter spdMerlin: SQLite process[spd21] reported error(s).
Oct 29 00:43:31 AsusRouter spdMerlin: Speedtest results - Download: 764.01 Mbps (data used: 859.2 MB, additional servers: 3) - Upload: 747.07 Mbps (data used: 915.3 MB)
Oct 29 00:43:31 AsusRouter spdMerlin: Connection quality - Idle Latency: 1.46 ms (jitter: 0.05ms, low: 1.36ms, high: 1.49ms) - Packet Loss: 0.0%
After logging more output, I found that ServerID and ServerName were not inserted correctly into the DB. Example insert that failed:
SQL:
INSERT INTO spdstats_WAN ([Timestamp],[Download],[Upload],[Latency],[Jitter],[PktLoss],[ResultURL],[DataDownload],[DataUpload],[ServerID],[ServerName])
VALUES (1761727471,834.09,732.91,1.45,0.04,0.0,'https://www.speedtest.net/result/8%3A44+AM',978.2,888.9,&,'Digi');
I grabbed the parsed file and saw the issue occurs with this server display name:
SCSS:
Digi (RCS & RDS) - Timisoara (id: 11500)
During parsing, ServerID resolved to & and ServerName to Digi because of the " (RCS & RDS) " part.
Fix
I adjusted the spdMerlin script where the two variables are populated.Original:
Bash:
serverName="$(grep "Server:" "$tmpfile" | awk 'BEGIN { FS = "\r" } ;{print $NF};' | cut -f1 -d'(' | cut -f2 -d':' | awk '{$1=$1;print}')"
serverid="$(grep "Server:" "$tmpfile" | awk 'BEGIN { FS = "\r" } ;{print $NF};' | cut -f2 -d'(' | awk '{print $2}' | tr -d ')')"
Updated:
Bash:
serverName="$(grep "Server:" "$tmpfile" | awk 'BEGIN{FS="\r"};{print $NF}' | awk -F'Server:' '{print $2}' | awk -F' \\(id:' '{print $1}' | awk '{$1=$1; print}')"
serverid="$(grep "Server:" "$tmpfile" | awk 'BEGIN{FS="\r"};{print $NF}' | awk -F'\\(id: ' '{print $2}' | awk -F'\\)' '{print $1}')"
With this change, I now get:
- serverName = "Digi (RCS & RDS) - Timisoara"
- serverId = "11500"
The insert succeeds and no longer throws the SQLite insert error.
