Задача #2055

Исправление крешей с insights

Added by Кочев Алексей over 4 years ago. Updated over 4 years ago.

Status:Обратная связь Start date:03/07/2017
Priority:Нормальный Due date:
Assignee:- % Done:

0%

Category:-
Target version:5.0.1339.1
Сметная стоимость:0.0

Description

  1. Ошибка: TimeSpan overflowed because the duration is too long / с timeSpan (На таймере до просрочки доставки):
    Ломается из-за некорретно-заданной даты на устройстве, так как опоздание расчитывается как (время доставки - текущее время)
    fix: delay > TimeSpan.MinValue.TotalSeconds && delay < TimeSpan.MaxValue.TotalSeconds (проверка на максимально и минимально возможные значения)
  2. Ошибка: System.IO.IOExceptionSharing violation on path settings.json:
    Попытка из нескольких потоков писать в один и тот же файл
    fix: используем Lock на код в методе сохранения, это должно блокировать выполнение этого же кода из других потоков.

History

Updated by Кочев Алексей over 4 years ago

Кочев Алексей писал(а):

  1. Ошибка: TimeSpan overflowed because the duration is too long / с timeSpan (На таймере до просрочки доставки): Ломается из-за некорретно-заданной даты на устройстве, так как опоздание расчитывается как (время доставки - текущее время) fix: delay > TimeSpan.MinValue.TotalSeconds && delay < TimeSpan.MaxValue.TotalSeconds (проверка на максимально и минимально возможные значения)

Возможен еще тот вариант, что с биза приходит некорректное время доставки (DeliveryDate)

Updated by Кочев Алексей over 4 years ago

2. Ошибка: System.IO.IOExceptionSharing violation on path settings.json вываливается когда одновременно несколько раз нажимаешь кнопку "Сохранить":
Решение: сделаем флаг для отслеживания сохранения:
  • начали сохранять по первому нажатию, кнопку задисеблили + используем Lock на код в методе сохранения, это должно блокировать выполнение этого же кода из других потоков.

Updated by Кочев Алексей over 4 years ago

NullReferenceException Object reference not set to an instance of an object (IikoDeliveryMan.Droid)

Отловить не удалось, судя по исайстам падало при инициализации actionBar-а (при раскраске текста в два цвета если курьер опаздывает).
Решение: все обернуто в try-catch, текст берем вручную из вьюмодели с проверкой что вьюмодель инициализирована.

Updated by Кочев Алексей over 4 years ago

  • Target version changed from 5.0.1339.0 to 5.0.1339.1

Updated by Кочев Алексей over 4 years ago

1) TimeSpan overflowed because the duration is too long / с timeSpan (На таймере до просрочки доставки):
Ломается из-за некорректно заданной даты на устройстве, либо иногда с биза приходит некорректное время доставки (DeliveryDate). Используется для расчета времени опоздания (время доставки - текущее время).
Решение: сделали проверки на максимально и минимально возможные значения.
_____________________________________________________________________________
2) System.IO.IOExceptionSharing violation on path settings.json:
Попытка из нескольких потоков писать в один и тот же файл. Воспроизводится когда одновременно несколько раз нажимается кнопка "Сохранить":
Решение: Сделали флаг для отслеживания сохранения: начали сохранять по первому нажатию, кнопку отключаем + используем Lock на код в методе сохранения, это должно блокировать выполнение этого же кода из других потоков (чтобы 100% не получить ошибок).
_____________________________________________________________________________
3) NullReferenceException Object reference not set to an instance of an object
Отловить не удалось, судя по Insights падало при инициализации actionBar-а (при раскраске текста в два цвета если курьер опаздывает).
Решение: все обернуто в try-catch, текст берем вручную из viewModel с проверкой что viewModel инициализирована (могло быть как раз таки из-за того что viewModel еще не заинициализировалась, а текст мы уже просим).

Updated by Кочев Алексей over 4 years ago

  • Status changed from Новая to Обратная связь

Also available in: Atom PDF