DimensionDev / TesserPG-iOS

Encryption Made Mobile.
https://tesserpg.com
GNU Affero General Public License v3.0
41 stars 5 forks source link

[Bug] Crash when import Linus's key #27

Closed Tedko closed 5 years ago

Tedko commented 5 years ago

「出问题的那个key」:https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xabaf11c65a2970b130abe3c479be3e4300411886

Quote from user:

可能是因为多个电子邮件id

TesserCube-2019-07-31-003524.txt TesserCube-2019-07-31-003450.txt

jk234ert commented 5 years ago

在最新版本上导入,没发现问题啊

https://i.loli.net/2019/07/31/5d40ee336328759735.png https://i.loli.net/2019/07/31/5d40ee3363e1b86296.png https://i.loli.net/2019/07/31/5d40ee3362a0b53903.png

Tedko commented 5 years ago

看看报错文件?

On Tue, Jul 30, 2019 at 21:26 BradGao notifications@github.com wrote:

在最新版本上导入,没发现问题啊

[image: IMG_0158.png] https://i.loli.net/2019/07/31/5d40ee336328759735.png [image: IMG_0159.png] https://i.loli.net/2019/07/31/5d40ee3363e1b86296.png [image: IMG_0157.png] https://i.loli.net/2019/07/31/5d40ee3362a0b53903.png

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/DimensionDev/Tessercube-iOS/issues/27?email_source=notifications&email_token=ABTAVTN3IBH5ARGKTEFZK4TQCDS6DA5CNFSM4IH7M362YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3FYWHI#issuecomment-516655901, or mute the thread https://github.com/notifications/unsubscribe-auth/ABTAVTJEKXUENPXZRD4HHCTQCDS6DANCNFSM4IH7M36Q .

Tedko commented 5 years ago

@imlibra

MainasuK commented 5 years ago

@jk234ert Delete two contacts after import that key. Then re-import will crash the App at MeViewModel.tableView(_:cellForRowAt:).

It is looks like the related issue #18

jk234ert commented 5 years ago

@jk234ert Delete two contacts after import that key. Then re-import will crash the App at MeViewModel.tableView(_:cellForRowAt:).

It is looks like the related issue #18

Diagnosing...

MainasuK commented 5 years ago

image Import and remove keys several times make sure the Me tab display empty rows. (it's should be placeholder cell but somehow not).

Console

Fatal error: Index out of range
2019-07-31 10:23:00.066097+0800 TesserCube[22129:13640961] Fatal error: Index out of range

Stack image

jk234ert commented 5 years ago

fix pushed in pr #28

Tedko commented 5 years ago

z👍

On Tue, Jul 30, 2019 at 22:38 BradGao notifications@github.com wrote:

fix pushed in pr #28 https://github.com/DimensionDev/Tessercube-iOS/pull/28

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/DimensionDev/Tessercube-iOS/issues/27?email_source=notifications&email_token=ABTAVTPHFAP5WHPRXOGQ6ITQCD3JDA5CNFSM4IH7M362YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3F4E4I#issuecomment-516670065, or mute the thread https://github.com/notifications/unsubscribe-auth/ABTAVTPX32AFE4IWQBUT4FTQCD3JDANCNFSM4IH7M36Q .

MainasuK commented 5 years ago

This bug should be resolved in 22b0f08d37e256cc3241be2e26265e9a0df0aa6e (finally).

ViewModel drives hasKey to emit next to reload actions view. Then the view.setNeedsLayout() cause table view reloads but at that time data source also changed. The index path point to one deleted element.

// MeViewModel
hasKey = keys.asDriver().map { !$0.isEmpty }

// MeViewController
viewModel.hasKey
    .drive(onNext: { [weak self] result in
        self?.reloadActionsView(hasKey: result)
    })
    .disposed(by: disposeBag)
Tedko commented 5 years ago

z👍

On Mon, Sep 16, 2019 at 18:13 CMK notifications@github.com wrote:

This bug should be resolved in 22b0f08 https://github.com/DimensionDev/Tessercube-iOS/commit/22b0f08d37e256cc3241be2e26265e9a0df0aa6e (finally).

ViewModel drive hasKey emit next to reload actions view. Then the view.setNeedsLayout() cause table view reload but at that time data source also changed. The index path point to one deleted element.

// MeViewModelhasKey = keys.asDriver().map { !$0.isEmpty } // MeViewControllerviewModel.hasKey .drive(onNext: { [weak self] result in self?.reloadActionsView(hasKey: result) }) .disposed(by: disposeBag)

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/DimensionDev/Tessercube-iOS/issues/27?email_source=notifications&email_token=ABTAVTJOFOOJ5RFPJSHBEJLQJ5L5HA5CNFSM4IH7M362YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6YVXNA#issuecomment-531717044, or mute the thread https://github.com/notifications/unsubscribe-auth/ABTAVTN3CKD3TQQ3ABZQKM3QJ5L5HANCNFSM4IH7M36Q .