alexjustesen / speedtest-tracker

Speedtest Tracker is a self-hosted internet performance tracking application that runs speedtest checks against Ookla's Speedtest service.
https://speedtest-tracker.dev/
MIT License
2.61k stars 98 forks source link

Started not Completed #1591

Closed mcdoubleyou closed 2 weeks ago

mcdoubleyou commented 2 months ago

Describe the bug Most time I didn't get a Completed

To Reproduce Results show Started but nearly no Completed

Expected behavior the other speedtracker works, so it shouldn't my enviroment

Environment (please complete the following information): Debain 12

Screenshots I cloud provide one, but there is simply no Completed

Logs If you tell me where I could find them, maybe I could figure out what's happend

Thanks!

svenvg93 commented 2 months ago

Hi @mcdoubleyou ,

I assume that you see the "Started" in the results table right? Can you share your docker compose file, might help us why this is happening

mcdoubleyou commented 2 months ago

Hey @svenvg93,

yes, thats right. Here is my compose file - thx for helping! App_Key censored, not sure if it is unique.

services:
  speedtest-tracker:
    image: lscr.io/linuxserver/speedtest-tracker:latest
    container_name: speedtest-tracker
    hostname: speedtest-tracker
    #    ports:
    #      - 7080:80
    networks:
      - proxy
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Vienna
      - DB_CONNECTION=sqlite
      - APP_KEY=base64:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      - SPEEDTEST_SERVERS=515,8314
      - SPEEDTEST_SCHEDULE=0 * * * *
    volumes:
      - speedtest-tracker_data:/config
    restart: unless-stopped
volumes:
  speedtest-tracker_data:
    external: true
networks:
  proxy:
    external: true
svenvg93 commented 2 months ago

The problem is that both server ID set, don't exist anymore. For now the error that is giving by the Speedtest CLI is not handled nicely, hence why the test keeps stuck at Started. If you pick other server im sure it will work as expected :)

Scherm­afbeelding 2024-07-03 om 18 39 25
alexjustesen commented 2 months ago

I'll look into why this isn't being handled correctly when a server is no longer available. It should correctly fail the test if the CLI fails.

Nickleaton commented 1 month ago

I get the same. If you need a tester...

spyhuntergenral commented 1 month ago

getting the same issue, properly this:

[previous exception] [object] (PDOException(code: HY000): SQLSTATE[HY000]: General error: 1 no such column: server_id at /app/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php:592) [stacktrace]

EDIT: At least for me it was a firewall blocking outbound TCP/8080 , once allowing that everything started working fine

mcdoubleyou commented 1 month ago

I deleted the servers but is still fails, then I see there was an update. looks like it is working after the newst update - I will update after some scheduled tests thx

my current yaml

services:
  speedtest-tracker:
    image: lscr.io/linuxserver/speedtest-tracker:latest
    container_name: speedtest-tracker
    hostname: speedtest-tracker
    #    ports:
    #      - 7080:80
    networks:
      - proxy
    environment:
      - PUID=1000
      - PGID=1000
      - APP_TIMEZONE=Europe/Vienna
      - DISPLAY_TIMEZONE=Europe/Vienna
      - DB_CONNECTION=sqlite
      - APP_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      - SPEEDTEST_SERVERS=
      - SPEEDTEST_SCHEDULE=0 * * * *
    volumes:
      - speedtest-tracker_data:/config
    restart: unless-stopped
volumes:
  speedtest-tracker_data:
    external: true
networks:
  proxy:
    external: true
RobertD502 commented 1 month ago

Is it possible to have it iterate through the list (if multiple servers are defined) and only fail if none of the user-defined servers exist?

mcdoubleyou commented 1 month ago

still works, if it keeps running I could delete the other speed tracker in a few days - nice! thx!

bibinvargheset commented 1 month ago

It seems it fails when server list is configured even with the server that is automatically selected without the selection list

The schedule fails inter, intermittently.

`version: '3.3' services: speedtest-tracker: container_name: speedtest-tracker ports:

RobertD502 commented 1 month ago

It seems it fails when server list is configured even with the server that is automatically selected without the selection list

The schedule fails inter, intermittently.

`version: '3.3' services: speedtest-tracker: container_name: speedtest-tracker ports: - 8080:80 - 8443:443 environment: - PUID=1000 - PGID=1000

        - DB_CONNECTION=sqlite
        - SPEEDTEST_SCHEDULE='*/15 * * * *'
        - CHART_DATETIME_FORMAT= 'Y-m-d H:i'
        - DATETIME_FORMAT='Y-m-d H:i'
        - APP_TIMEZONE='Asia/Kolkata'
        - DISPLAY_TIMEZONE='Asia/Kolkata'
        - SPEEDTEST_SERVERS=14922,10969,62235,29372 
    volumes:
        - ./:/config
       # - /path/to-custom-ssl-keys:/config/keys
    image: lscr.io/linuxserver/speedtest-tracker:0.20.6  #0.20.6 #latest
    restart: unless-stopped

Check your logs. The server that it attempted to use likely isn't available anymore, which results in a test failing (the test being listed in the results table as "Started"). The reason it is intermittent: successful results happen when a server (from your defined list of servers) that exists is used.

For example: Let's say I have defined speedtest servers # 1, # 2, # 3, and # 4. Let's also say that servers # 3 and # 4 existed when I made the configuration, but they no longer exist now.

During my first test, server # 1 is used and I see a successful result. However, during the next speedtest server # 3 is used and it fails (since the server isn't recognized as an available server anymore by Ookla). During the 3rd test, speedtest-tracker then uses server # 2. Once again, I see a successful test result.

A scenario such as this will make it appear as an intermittent issue - it all depends on what server was used, from your defined list of servers, and if the server used exists anymore.

svenvg93 commented 1 month ago

Too add to @RobertD502 explanation, in the case of @bibinvargheset is the second server id that does not exist anymore

speedtest -s 10969
[error] Configuration - No servers defined (NoServersException)
mircsicz commented 3 weeks ago

Same here, following config doesn't get any further than 'Started'

---
# https://github.com/docker/roadmap/issues/658
version: '3.4'
services:
  speedtest-tracker:
    container_name: speedtest
    # ports:
    #  - 127.0.0.1:8081:80
    environment:
      - PORT=80
      - PUID=1000
      - PGID=1000
      - DB_CONNECTION=sqlite
      - APP_TIMEZONE=Europe/Berlin
      - DISPLAY_TIMEZONE=Europe/Berlin
      - APP_KEY=base64:SE9KCcRGkNhWov99uLXW91UZRdNP7D4Bm968GQB8BPI=
      - SPEEDTEST_SCHEDULE='*/15 0-23 * * *'
      - SPEEDTEST_SERVERS=52770,44081
      - PRUNE_RESULTS_OLDER_THAN=95
    volumes:
      - /srv/docker/speedtest-techni/config:/config
      # - /path/to-custom-ssl-keys:/config/keys
    image: lscr.io/linuxserver/speedtest-tracker:latest
    platform: "linux/arm64"
    restart: unless-stopped
    networks:
      eth0:
        ipv4_address: 10.10.xxx.91

networks:
  eth0:
    external: true
    name: XXX-BH_SRV_eth0
RobertD502 commented 3 weeks ago

@mircsicz That is because neither of those 2 servers you defined exist.

Output from a manual test using speedtest cli:

ERROR: No matched servers: 52770
ERROR: No matched servers: 44081
mircsicz commented 3 weeks ago

But both of them were listed using the defined docker cmd...

Which would also describe why even without parameters in the list it doesn't get beyond 'Started'... As the search returns inactive / unavailable servers!

RobertD502 commented 3 weeks ago

But both of them were listed using the defined docker cmd...

Which would also describe why even without parameters in the list it doesn't get beyond 'Started'... As the search returns inactive / unavailable servers!

Without parameters it'll never work since the requirement of defining servers was introduced a few releases ago.

Does the docker command still list those two servers as of today? I've found that some servers may be listed one day and then are unavailable for a while until they return (I've mainly seen this with Spectrum servers, at least from my end). The solution, in the meantime, is to look for and use servers that you find are always available.

mircsicz commented 3 weeks ago

I ran the 'docker exec' line like an hour before I posted to this issue 😉

RobertD502 commented 3 weeks ago

I ran the 'docker exec' line like an hour before I posted to this issue 😉

Doesn't seem that command is listed in the documentation anymore (perhaps it returned inaccurate results?). Docs now tell you to navigate to https://c.speedtest.net/speedtest-servers-static.php to view a list of best servers near you. Regardless of all of that, the reason your speedtests aren't working with your current config is because they are no longer valid servers, as determined by Ookla. Use the link provided to get some server ids to edit your config with.

alexjustesen commented 3 weeks ago

@RobertD502 can you send me a link to the reference in their docs? Sounds like I should update mine.

RobertD502 commented 2 weeks ago

@alexjustesen I was referring to your own documentation - If I recall correctly, it had previously mentioned a command to execute within the container which showed nearby servers, but now it shows:

image

alexjustesen commented 2 weeks ago

My bad, I thought you had found a reference somewhere else.

mircsicz commented 2 weeks ago

I ran the 'docker exec' line like an hour before I posted to this issue 😉

Doesn't seem that command is listed in the documentation anymore (perhaps it returned inaccurate results?). Docs now tell you to navigate to https://c.speedtest.net/speedtest-servers-static.php to view a list of best servers near you. Regardless of all of that, the reason your speedtests aren't working with your current config is because they are no longer valid servers, as determined by Ookla. Use the link provided to get some server ids to edit your config with.

Thanks for the hints, with that it now works as expected...

alexjustesen commented 2 weeks ago

Seems like OP is all set as some PRs were merged to address the original issue. Any further issues let's open a new one.