Tribler / tribler

Privacy enhanced BitTorrent client with P2P content discovery
https://www.tribler.org
GNU General Public License v3.0
4.79k stars 444 forks source link

test_on_health_check_completed failure on Windows #5862

Closed qstokkink closed 2 years ago

qstokkink commented 3 years ago

Random failure encountered during PR testing. This should be investigated to make sure there are no underlying major issues.

================================== FAILURES ===================================
_______________________ test_on_health_check_completed ________________________
[gw1] win32 -- Python 3.8.4 c:\users\tribler\appdata\local\programs\python\python38\python.exe

enable_chant = None
torrent_checker = <tribler_core.modules.torrent_checker.torrent_checker.TorrentChecker object at 0x0000000029DDE4C0>
session = <tribler_core.session.Session object at 0x0000000029D37280>

    def test_on_health_check_completed(enable_chant, torrent_checker, session):
        tracker1 = 'udp://localhost:2801'
        tracker2 = "http://badtracker.org/announce"
        infohash_bin = b'\xee'*20
        infohash_hex = hexlify(infohash_bin)

        exception = Exception()
        exception.tracker_url = tracker2
        result = [
            {tracker1: [{'leechers': 1, 'seeders': 2, 'infohash': infohash_hex}]},
            exception,
            {'DHT': [{'leechers': 12, 'seeders': 13, 'infohash': infohash_hex}]}
        ]
        # Check that everything works fine even if the database contains no proper infohash
        res_dict = {
            'DHT': {
                'leechers': 12,
                'seeders': 13,
                'infohash': infohash_hex
            },
            'http://badtracker.org/announce': {
                'error': ''
            },
            'udp://localhost:2801': {
                'leechers': 1,
                'seeders': 2,
                'infohash': infohash_hex
            }
        }
        torrent_checker.on_torrent_health_check_completed(infohash_bin, result)
        assert torrent_checker.on_torrent_health_check_completed(infohash_bin, result) == res_dict
        assert not torrent_checker.on_torrent_health_check_completed(infohash_bin, None)

        with db_session:
            ts = session.mds.TorrentState(infohash=infohash_bin)
            previous_check = ts.last_check
            torrent_checker.on_torrent_health_check_completed(infohash_bin, result)
>           assert 1 == len(torrent_checker.torrents_checked)
E           assert 1 == 2
E             +1
E             -2

src\tribler-core\tribler_core\modules\torrent_checker\test_torrentchecker.py:221: AssertionError
----------------------------- Captured log setup ------------------------------
DEBUG    asyncio:proactor_events.py:623 Using proactor: IocpProactor
INFO     Session:session.py:280 Session is using state directory: C:\Users\tribler\AppData\Local\Temp\pytest-of-tribler\pytest-1909\popen-gw1\test_on_health_check_completed0\dot.Tribler
DEBUG    tribler_core.utilities.network_utils:network_utils.py:38 Got a working random port 45407
DEBUG    TriblerConfig:tribler_config.py:114 Get random port 45407 for [libtorrent~port]
DEBUG    tribler_core.utilities.network_utils:network_utils.py:38 Got a working random port 21777
DEBUG    TriblerConfig:tribler_config.py:114 Get random port 21777 for [libtorrent~anon_listen_port]
DEBUG    tribler_core.utilities.network_utils:network_utils.py:38 Got a working random port 57539
DEBUG    TriblerConfig:tribler_config.py:114 Get random port 57539 for [tunnel_community~socks5_listen_ports~0]
DEBUG    tribler_core.utilities.network_utils:network_utils.py:38 Got a working random port 33366
DEBUG    TriblerConfig:tribler_config.py:114 Get random port 33366 for [tunnel_community~socks5_listen_ports~1]
DEBUG    tribler_core.utilities.network_utils:network_utils.py:38 Got a working random port 26462
DEBUG    TriblerConfig:tribler_config.py:114 Get random port 26462 for [tunnel_community~socks5_listen_ports~2]
DEBUG    tribler_core.utilities.network_utils:network_utils.py:38 Got a working random port 5526
DEBUG    TriblerConfig:tribler_config.py:114 Get random port 5526 for [tunnel_community~socks5_listen_ports~3]
DEBUG    tribler_core.utilities.network_utils:network_utils.py:38 Got a working random port 59767
DEBUG    TriblerConfig:tribler_config.py:114 Get random port 59767 for [tunnel_community~socks5_listen_ports~4]
DEBUG    SentryReporter:sentry_reporter.py:278 Set user: 14ae4c7b36fd847502183034972a8dfa
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.address`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.address` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.automotive`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.automotive` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.bank`.
DEBUG    faker.factory:factory.py:98 Specified locale `en_US` is not available for provider `faker.providers.bank`. Locale reset to `en_GB` for this provider.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.barcode`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.barcode` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.color`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.color` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.company`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.company` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.credit_card`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.credit_card` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.currency`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.currency` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.date_time`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.date_time` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:115 Provider `faker.providers.file` does not feature localization. Specified locale `en_US` is not utilized for this provider.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.geo`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.geo` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.internet`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.internet` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:115 Provider `faker.providers.isbn` does not feature localization. Specified locale `en_US` is not utilized for this provider.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.job`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.job` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.lorem`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.lorem` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.misc`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.misc` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.person`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.person` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.phone_number`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.phone_number` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:115 Provider `faker.providers.profile` does not feature localization. Specified locale `en_US` is not utilized for this provider.
DEBUG    faker.factory:factory.py:115 Provider `faker.providers.python` does not feature localization. Specified locale `en_US` is not utilized for this provider.
DEBUG    faker.factory:factory.py:90 Looking for locale `en_US` in provider `faker.providers.ssn`.
DEBUG    faker.factory:factory.py:104 Provider `faker.providers.ssn` has been localized to `en_US`.
DEBUG    faker.factory:factory.py:115 Provider `faker.providers.user_agent` does not feature localization. Specified locale `en_US` is not utilized for this provider.
INFO     TrackerManager:tracker_manager.py:38 No tracker blacklist file found at C:\Users\tribler\AppData\Local\Temp\pytest-of-tribler\pytest-1909\popen-gw1\test_on_health_check_completed0\dot.Tribler\tracker_blacklist.txt.
WARNING  Notifier:notifier.py:43 Called notification on a non-existing subject NTFY.TRIBLER_STARTED
------------------------------ Captured log call ------------------------------
DEBUG    TorrentChecker:torrent_checker.py:347 Update result 13/12 for eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
WARNING  TorrentChecker:torrent_checker.py:353 Tried to update torrent health data in DB for an unknown torrent: eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
DEBUG    TorrentChecker:torrent_checker.py:347 Update result 13/12 for eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
WARNING  TorrentChecker:torrent_checker.py:353 Tried to update torrent health data in DB for an unknown torrent: eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
INFO     TorrentChecker:torrent_checker.py:218 Received invalid torrent checker result
DEBUG    TorrentChecker:torrent_checker.py:347 Update result 13/12 for eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
---------------------------- Captured log teardown ----------------------------
WARNING  Notifier:notifier.py:43 Called notification on a non-existing subject NTFY.CHANNEL_ENTITY_UPDATED
WARNING  Notifier:notifier.py:43 Called notification on a non-existing subject NTFY.CHANNEL_ENTITY_UPDATED
WARNING  Notifier:notifier.py:43 Called notification on a non-existing subject NTFY.CHANNEL_ENTITY_UPDATED
WARNING  Notifier:notifier.py:43 Called notification on a non-existing subject NTFY.CHANNEL_ENTITY_UPDATED
INFO     Session:session.py:504 Tribler shutdown state notification:Shutting down Gigachannel Manager...
WARNING  Notifier:notifier.py:43 Called notification on a non-existing subject NTFY.TRIBLER_SHUTDOWN_STATE
INFO     Session:session.py:504 Tribler shutdown state notification:Saving configuration...
INFO     Session:session.py:504 Tribler shutdown state notification:Shutting down Metadata Store...
WARNING  Notifier:notifier.py:43 Called notification on a non-existing subject NTFY.TRIBLER_SHUTDOWN_STATE
WARNING  Notifier:notifier.py:43 Called notification on a non-existing subject NTFY.TRIBLER_SHUTDOWN_STATE
drew2a commented 2 years ago

I didn't see this error for a long time. I close the issue, but it can be reopened in case we see the error again.