lbryio / lbry-sdk

The LBRY SDK for building decentralized, censorship resistant, monetized, digital content apps.
https://lbry.com
MIT License
7.2k stars 482 forks source link

Files try to re-download on startup if abruptly stopped (Android) #2775

Open tzarebczan opened 4 years ago

tzarebczan commented 4 years ago

I tried to reproduce the below on my PC but could not. Maybe something to do with Android or how the process is quit (I did try killing the process manually and was able to get the "recover streams" thing to happen, but no redownload).

File starts streaming to the app here:

2020-02-05 16:45:31,027 INFO     lbry.stream.stream_manager:168: no DHT node given, resuming downloads trusting that we can contact reflector
2020-02-05 16:45:31,028 INFO     lbry.extras.daemon.components:322: Done setting up file manager
2020-02-05 16:45:38,346 INFO     lbry.extras.daemon.daemon:894: Get version info: {"processor": "", "python_version": "3.7.1", "platform": "Android 9 (API 28)", "os_release": "4.9.148", "os_system": "android", "lbrynet_version": "0.56.0", "version": "0.56.0", "build": "release"}
2020-02-05 16:47:08,367 INFO     lbry.stream.managed_stream:296: stream file to browser for lbry://eevblog-1282-design-your-own-membrane#22306ffcf2769875473f7da4e8e2ff42876a4c6c (sd hash 817bfc...)
2020-02-05 16:47:08,370 INFO     lbry.stream.managed_stream:250: start downloader for stream (sd hash: 817bfc565a3dbf45683344910ca6c7e929308c6a463412cb1ed770f34cb7bccd6f7e5c9069c5023e082fb4e5a108ec2b)
2020-02-05 16:47:08,432 INFO     lbry.stream.downloader:103: searching for peers for stream 817bfc565a3dbf45683344910ca6c7e929308c6a463412cb1ed770f34cb7bccd6f7e5c9069c5023e082fb4e5a108ec2b
2020-02-05 16:47:08,433 INFO     lbry.stream.downloader:110: added head blob to peer search for stream 817bfc565a3dbf45683344910ca6c7e929308c6a463412cb1ed770f34cb7bccd6f7e5c9069c5023e082fb4e5a108ec2b
2020-02-05 16:47:11,565 INFO     lbry.blob_exchange.client:157: downloaded b4af4c48 from 147.135.70.49:5567 at 0.710000MB/s
2020-02-05 16:47:11,763 INFO     lbry.stream.managed_stream:323: sent browser blob 1/327
2020-02-05 16:47:13,884 INFO     lbry.blob_exchange.client:157: downloaded efce2f86 from 

Then the app is killed (Android does not call daemon stop). Notice attribute error AttributeError: 'NoneType' object has no attribute 'started'

2020-02-05 16:47:31,270 INFO     lbry.extras.daemon.daemon:448: Starting LBRYNet Daemon
2020-02-05 16:47:31,271 INFO     lbry.extras.daemon.daemon:450: Platform: {
  "processor": "",
  "python_version": "3.7.1",
  "platform": "Android 9 (API 28)",
  "os_release": "4.9.148",
  "os_system": "android",
  "lbrynet_version": "0.56.0",
  "version": "0.56.0",
  "build": "release"
}
2020-02-05 16:47:32,685 INFO     lbry.extras.daemon.daemon:459: RPC server listening on TCP 127.0.0.1:5279
2020-02-05 16:47:32,694 INFO     lbry.extras.daemon.daemon:469: media server listening on TCP 127.0.0.1:5280
2020-02-05 16:47:33,286 INFO     lbry.extras.daemon.daemon:434: detected internet connection is working
2020-02-05 16:47:33,588 INFO     lbry.extras.daemon.exchange_rate_manager:184: Starting exchange rate manager
2020-02-05 16:47:33,591 INFO     lbry.extras.daemon.components:65: Loading databases
2020-02-05 16:47:33,594 INFO     lbry.wallet.database:238: connecting to database: /storage/emulated/0/Android/data/io.lbry.browser/files/lbrynet/lbrynet.sqlite
2020-02-05 16:47:33,598 INFO     lbry.extras.daemon.components:457: detecting external ip
2020-02-05 16:47:34,277 INFO     lbry.extras.daemon.components:154: Starting wallet
2020-02-05 16:47:35,870 INFO     lbry.wallet.database:238: connecting to database: /storage/emulated/0/Android/data/io.lbry.browser/files/lbryum/lbc_mainnet/blockchain.db
2020-02-05 16:47:35,880 ERROR    lbry.extras.daemon.daemon:585: error handling /stream range request
Traceback (most recent call last):
  File "/data/user/0/io.lbry.browser/files/app/crystax_python/site-packages/lbry/extras/daemon/daemon.py", line 576, in handle_stream_range_request
    return await self._handle_stream_range_request(request)
  File "/data/user/0/io.lbry.browser/files/app/crystax_python/site-packages/lbry/extras/daemon/daemon.py", line 592, in _handle_stream_range_request
    if not self.stream_manager.started.is_set():
AttributeError: 'NoneType' object has no attribute 'started'
2020-02-05 16:47:36,431 WARNING  lbry.wallet.network:74: Wallet server (spv8.lbry.com:50001) returned an error. Code: 1 Message: unsupported protocol version: 0.56.0
2020-02-05 16:47:36,562 WARNING  lbry.wallet.network:74: Wallet server (spv8.lbry.com:50001) returned an error. Code: 1 Message: unsupported protocol version: 0.56.0
2020-02-05 16:47:36,578 INFO     lbry.wallet.network:342: connected to spv7.lbry.com:50001
2020-02-05 16:47:38,039 INFO     lbry.extras.daemon.components:316: Starting the file manager
2020-02-05 16:47:38,104 INFO     lbry.stream.stream_manager:147: Recover 37 files
2020-02-05 16:47:39,358 INFO     lbry.stream.stream_manager:150: Initializing 37 files
2020-02-05 16:47:39,951 INFO     lbry.stream.stream_manager:166: Started stream manager with 37 files
2020-02-05 16:47:39,952 INFO     lbry.stream.stream_manager:168: no DHT node given, resuming downloads trusting that we can contact reflector
2020-02-05 16:47:39,953 INFO     lbry.extras.daemon.components:322: Done setting up file manager
2020-02-05 16:47:39,955 INFO     lbry.stream.stream_manager:173: Resuming saving 1 files
2020-02-05 16:47:39,957 INFO     lbry.stream.managed_stream:250: start downloader for stream (sd hash: 817bfc565a3dbf45683344910ca6c7e929308c6a463412cb1ed770f34cb7bccd6f7e5c9069c5023e082fb4e5a108ec2b)
2020-02-05 16:47:39,981 INFO     lbry.stream.downloader:103: searching for peers for stream 817bfc565a3dbf45683344910ca6c7e929308c6a463412cb1ed770f34cb7bccd6f7e5c9069c5023e082fb4e5a108ec2b
2020-02-05 16:47:39,982 INFO     lbry.stream.downloader:110: added head blob to peer search for stream 817bfc565a3dbf45683344910ca6c7e929308c6a463412cb1ed770f34cb7bccd6f7e5c9069c5023e082fb4e5a108ec2b
2020-02-05 16:47:40,010 INFO     lbry.stream.managed_stream:344: save file for lbry://eevblog-1282-design-your-own-membrane#22306ffcf2769875473f7da4e8e2ff42876a4c6c (sd hash 817bfc...) -> /storage/emulated/0/Download/eevblog-1282-design-your-own.mp4
2020-02-05 16:47:40,910 INFO     lbry.stream.managed_stream:296: stream file to browser for lbry://eevblog-1282-design-your-own-membrane#22306ffcf2769875473f7da4e8e2ff42876a4c6c (sd hash 817bfc...)
2020-02-05 16:47:41,746 INFO     lbry.blob_exchange.client:157: downloaded b4af4c48 from 147.135.70.49:5567 at 1.350000MB/s
2020-02-05 16:47:41,902 INFO     lbry.stream.managed_stream:352: write blob 1/327
2020-02-05 16:47:42,318 INFO     lbry.blob_exchange.client:157: downloaded 358d742e from 147.135.70.49:5567 at 4.400000MB/s
2020-02-05 16:47:42,379 INFO     lbry.stream.managed_stream:323: sent browser blob 10/327
tzarebczan commented 4 years ago

A few more users are seeing this. @akinwale tagging you for awareness. I think part of the problem is that we don't shut down the SDK properly on Android.

When they restart, they get this: downloads android /3077936558/252159563/)

kauffj commented 4 years ago

@akinwale is this a current issue?