Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix dns resolution issue for iOS #19798

Merged
merged 1 commit into from
Apr 26, 2024
Merged

Conversation

siddarthkay
Copy link
Contributor

@siddarthkay siddarthkay commented Apr 25, 2024

fixes #19736

Corresponding go PR status-im/status-go#5093

Summary

This PR fixes DNS resolution inside status-go by forcing pure go resolver at build time.
Reference -> https://pkg.go.dev/net#hdr-Name_Resolution

Testing notes

Store nodes must be available on Android & iOS app.

Platforms

  • Android
  • iOS

status: ready

@status-im-auto
Copy link
Member

status-im-auto commented Apr 25, 2024

Jenkins Builds

Click to see older builds (9)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 980fe3e #1 2024-04-25 12:14:43 ~5 min tests 📄log
✔️ b1c935f #3 2024-04-25 12:20:59 ~6 min tests 📄log
✔️ b1c935f #3 2024-04-25 12:22:01 ~7 min android-e2e 🤖apk 📲
✔️ b1c935f #3 2024-04-25 12:22:58 ~8 min android 🤖apk 📲
✔️ b1c935f #3 2024-04-25 12:25:56 ~11 min ios 📱ipa 📲
✔️ ff56660 #5 2024-04-25 16:56:06 ~7 min tests 📄log
✔️ ff56660 #5 2024-04-25 16:56:15 ~7 min android 🤖apk 📲
✔️ ff56660 #5 2024-04-25 16:59:03 ~10 min ios 📱ipa 📲
✔️ ff56660 #5 2024-04-25 16:59:48 ~11 min android-e2e 🤖apk 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 2c68701 #6 2024-04-26 08:16:46 ~6 min tests 📄log
✔️ 2c68701 #6 2024-04-26 08:17:39 ~7 min android-e2e 🤖apk 📲
✔️ 2c68701 #6 2024-04-26 08:18:29 ~8 min ios 📱ipa 📲
✔️ 2c68701 #6 2024-04-26 08:22:20 ~12 min android 🤖apk 📲
✔️ 115feb9 #8 2024-04-26 12:21:47 ~4 min tests 📄log
✔️ 115feb9 #8 2024-04-26 12:28:26 ~11 min ios 📱ipa 📲
✔️ 115feb9 #8 2024-04-26 12:28:36 ~11 min android-e2e 🤖apk 📲
✔️ 115feb9 #8 2024-04-26 12:30:08 ~12 min android 🤖apk 📲

@pavloburykh pavloburykh self-assigned this Apr 25, 2024
@pavloburykh pavloburykh moved this from E2E Tests to IN TESTING in Pipeline for QA Apr 25, 2024
@pavloburykh
Copy link
Contributor

Hi @siddarthkay. Thanks for the PR.

Unfortunately now storenodes not found neither on IOS nor on Android.

Android_store_nodes.zip
IOS_store_nodes.zip
photo_2024-04-25 16 42 07

Just a friendly reminder: please, smoke check your PRs before requesting manual QA. Thank you!

@status-im-auto
Copy link
Member

90% of end-end tests have passed

Total executed tests: 52
Failed tests: 3
Expected to fail tests: 2
Passed tests: 47
IDs of failed tests: 727230,727229,703391 
IDs of expected to fail tests: 703495,703503 

Failed tests (3)

Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    # STEP: Getting ETH amount in the wallet of the sender before transaction
    Device 1: Find `WalletTab` by `accessibility id`: `wallet-stack-tab`

    critical/test_wallet.py:117: in test_wallet_send_asset_from_drawer
        sender_balance, receiver_balance, eth_amount_sender, eth_amount_receiver = self._get_balances_before_tx()
    critical/test_wallet.py:39: in _get_balances_before_tx
        self.wallet_1.wallet_tab.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: WalletTab by accessibility id: `wallet-stack-tab` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    2. test_wallet_send_eth, id: 727229

    Device 1: Swiping right on element SlideButton
    Device 1: Find SlideButton by xpath: //*[@resource-id='slide-button-track']

    critical/test_wallet.py:109: in test_wallet_send_eth
        self.wallet_1.send_asset(address=self.receiver['address'], asset_name='Ether', amount=amount_to_send)
    ../views/wallet_view.py:97: in send_asset
        self.confirm_transaction()
    ../views/wallet_view.py:84: in confirm_transaction
        self.slide_and_confirm_with_password()
    ../views/wallet_view.py:78: in slide_and_confirm_with_password
        self.slide_button_track.slide()
    ../views/base_view.py:257: in slide
        self.swipe_right_on_element(width_percentage=1.3, start_x=100)
    ../views/base_element.py:308: in swipe_right_on_element
        location, size = self.get_element_coordinates()
    ../views/base_element.py:294: in get_element_coordinates
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: SlideButton by xpath: `//*[@resource-id='slide-button-track']` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_send_image_save_and_share, id: 703391

    Device 2: Find Button by accessibility id: image-0
    Device 2: Click system back button

    critical/chats/test_1_1_public_chats.py:458: in test_1_1_chat_send_image_save_and_share
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message about saving a photo is not shown for receiver.
    



    Device sessions

    Expected to fail tests (2)

    Click to expand

    Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Curated communities not loading, https://github.com//issues/17852]]

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495

    # STEP: Change device time so chat will be unmuted by timer
    Device 2: Long press on ChatElement

    critical/chats/test_group_chat.py:464: in test_group_chat_mute_chat
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Chat is still muted after timeout 
    

    [[Chat is not unmuted after expected time: https://github.com//issues/19627]]

    Device sessions

    Passed tests (47)

    Click to expand

    Class TestActivityMultipleDevicePR:

    1. test_navigation_jump_to, id: 702936
    Device sessions

    2. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777
    Device sessions

    2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    3. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732
    Device sessions

    2. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    3. test_group_chat_reactions, id: 703202
    Device sessions

    4. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    5. test_group_chat_offline_pn, id: 702808
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    3. test_community_undo_delete_message, id: 702869
    Device sessions

    4. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809
    Device sessions

    2. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    3. test_community_mentions_push_notification, id: 702786
    Device sessions

    4. test_community_leave, id: 702845
    Device sessions

    5. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194
    Device sessions

    2. test_community_one_image_send_reply, id: 702859
    Device sessions

    3. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    4. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    5. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    6. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    7. test_community_message_delete, id: 702839
    Device sessions

    8. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    9. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    10. test_community_message_edit, id: 702843
    Device sessions

    11. test_community_unread_messages_badge, id: 702841
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    2. test_wallet_add_remove_watch_only_account, id: 727232
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    2. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    3. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    4. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    5. test_1_1_chat_edit_message, id: 702855
    Device sessions

    6. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    7. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    @pavloburykh
    Copy link
    Contributor

    @siddarthkay BTW, I have no idea why e2e have passed. Looks like storenodes are found successfully on e2e emulators but on real devices it fails to connect.

    @siddarthkay
    Copy link
    Contributor Author

    @pavloburykh : When raising the PR the solution worked on iOS Simulator and the solution wasn't platform specific hence I assumed this solution worked everywhere.

    Screenshot 2024-04-25 at 5 18 03 PM

    @siddarthkay siddarthkay force-pushed the fix-dns-resolution-issue branch 2 times, most recently from d3a331a to ff56660 Compare April 25, 2024 16:48
    @siddarthkay
    Copy link
    Contributor Author

    @pavloburykh : pls check, I tested on real device this time.
    Should be fixed!

    image

    @status-im-auto
    Copy link
    Member

    90% of end-end tests have passed

    Total executed tests: 52
    Failed tests: 3
    Expected to fail tests: 2
    Passed tests: 47
    
    IDs of failed tests: 727230,702894,727229 
    
    IDs of expected to fail tests: 703503,703495 
    

    Failed tests (3)

    Click to expand
  • Rerun failed tests

  • Class TestCommunityMultipleDeviceMerged:

    1. test_community_contact_block_unblock_offline, id: 702894

    Device 1: Click until `ChatMessageInput` by `accessibility id`: `chat-message-input` will be presented
    Device 1: Looking for a message by text: Hurray! unblocked

    critical/chats/test_public_chat_browsing.py:708: in test_community_contact_block_unblock_offline
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Hurray! unblocked was not received in public chat after user unblock!
    



    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    Device 1: Find Text by xpath: //android.view.ViewGroup[@content-desc='container']/android.widget.TextView[@text='Ether']/../android.widget.TextView[3]
    Device 1: Text is 0.04534 ETH

    critical/test_wallet.py:127: in test_wallet_send_asset_from_drawer
        self._check_balances_after_tx(amount_to_send, sender_balance, receiver_balance, eth_amount_sender,
    critical/test_wallet.py:98: in _check_balances_after_tx
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Eth amount in the receivers wallet is 0.0279 but should be 0.028
    E    Eth amount in the senders wallet is 0.0453 but should be 0.0452
    



    2. test_wallet_send_eth, id: 727229

    Device 1: Text is 0.04534 ETH
    Device 2: Text is 0.0279 ETH

    critical/test_wallet.py:112: in test_wallet_send_eth
        self._check_balances_after_tx(amount_to_send, sender_balance, receiver_balance, eth_amount_sender,
    critical/test_wallet.py:98: in _check_balances_after_tx
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Eth amount in the senders wallet is 0.0453 but should be 0.0452
    E    Eth amount in the receivers wallet is 0.0279 but should be 0.028
    



    Expected to fail tests (2)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495

    # STEP: Change device time so chat will be unmuted by timer
    Device 2: Long press on ChatElement

    critical/chats/test_group_chat.py:464: in test_group_chat_mute_chat
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Chat is still muted after timeout 
    

    [[Chat is not unmuted after expected time: https://github.com//issues/19627]]

    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Curated communities not loading, https://github.com//issues/17852]]

    Passed tests (47)

    Click to expand

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    2. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    3. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_offline_pn, id: 702808
    Device sessions

    2. test_group_chat_pin_messages, id: 702732
    Device sessions

    3. test_group_chat_reactions, id: 703202
    Device sessions

    4. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    5. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194
    Device sessions

    2. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    3. test_community_message_delete, id: 702839
    Device sessions

    4. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    5. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    6. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    7. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    8. test_community_one_image_send_reply, id: 702859
    Device sessions

    9. test_community_unread_messages_badge, id: 702841
    Device sessions

    10. test_community_message_edit, id: 702843
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809
    Device sessions

    2. test_community_mentions_push_notification, id: 702786
    Device sessions

    3. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    4. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    5. test_community_leave, id: 702845
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    2. test_wallet_add_remove_watch_only_account, id: 727232
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777
    Device sessions

    2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    3. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    2. test_navigation_jump_to, id: 702936
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    2. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    3. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    4. test_1_1_chat_edit_message, id: 702855
    Device sessions

    5. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    6. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    7. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    8. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_mute_community_and_channel, id: 703382
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    3. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    4. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    5. test_community_undo_delete_message, id: 702869
    Device sessions

    @pavloburykh
    Copy link
    Contributor

    @siddarthkay thanks for the fix! Works fine for me. During testing I have noticed some messages delivery issues in communities. But I could not verify if this is related to this PR or not. Let's merge it and in case we face any problems in future we will rise a separate issue.

    @pavloburykh pavloburykh moved this from IN TESTING to MERGE in Pipeline for QA Apr 26, 2024
    siddarthkay added a commit to status-im/status-go that referenced this pull request Apr 26, 2024
    We need to apply the DNS override hack for iOS as well.
    
    This PR -> status-im/status-mobile#19798 in status-mobile fixes the DNS resolution issue for
    iOS ARM Simulators and for Android x86 Emulators.
    But we still need this change to ensure storenodes are found on real iOS devices and on Android arm Emulators.
    @siddarthkay siddarthkay changed the title properly fix dns resolution issue fix dns resolution issue for iOS Apr 26, 2024
    siddarthkay added a commit to status-im/status-go that referenced this pull request Apr 26, 2024
    We need to apply the DNS override hack for iOS as well.
    
    This PR -> status-im/status-mobile#19798 in status-mobile fixes the DNS resolution issue for
    iOS ARM Simulators and for Android x86 Emulators.
    But we still need this change to ensure storenodes are found on real iOS devices and on Android arm Emulators.
    status-im/status-go@90b18d4...b124e2b
    
    fixes #19736
    
    Corresponding go PR status-im/status-go#5093
    
    This commit fixes DNS resolution inside status-go by forcing pure go resolver at build time.
    Reference -> https://pkg.go.dev/net#hdr-Name_Resolution
    
    Store nodes must be available on Android & iOS app.
    
    - Android
    - iOS
    
    status: ready
    @siddarthkay siddarthkay merged commit 8fc6f47 into develop Apr 26, 2024
    6 checks passed
    Pipeline for QA automation moved this from MERGE to DONE Apr 26, 2024
    @siddarthkay siddarthkay deleted the fix-dns-resolution-issue branch April 26, 2024 12:34
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Archived in project
    Development

    Successfully merging this pull request may close these issues.

    Store nodes are not available on IOS
    4 participants