Charts: EXC_BREAKPOINT em LineChartRenderer.drawCircles

Criado em 28 jun. 2019  ·  21Comentários  ·  Fonte: danielgindi/Charts

Eu preciso mostrar gráficos de linha. Eu uso a API regular de gráficos para mostrar qualquer gráfico, e funciona perfeitamente na maioria dos casos, mas recebo no crashlyhtics alguns erros:

Falha: com.apple.main-threadEXC_BREAKPOINT 0x00000001060e9ad4

Falha: com.apple.main-thread
0 Gráficos 0x1060e9ad4 LineChartRenderer.drawCircles (contexto :) + 108 (BarLineScatterCandleBubbleRenderer.swift: 108)
1 Gráficos 0x106052f44 BarLineChartViewBase.draw (_ :) + 237 (BarLineChartViewBase.swift: 237)
2 gráficos 0x106053f9c @objc BarLineChartViewBase.draw (_ :) ()
3 UIKitCore 0x1edade560 - [UIView (CALayerDelegate) drawLayer: inContext :] + 460
4 QuartzCore 0x1c53395c4 - [CALayer drawInContext:] + 296
5 QuartzCore 0x1c521d970 CABackingStoreUpdate_ + 176
6 Função de invocação QuartzCore 0x1c53400d0 para bloco em CA :: Layer :: display_ () + 52
7 QuartzCore 0x1c5338e88 - [CALayer _display] + 1520
8 QuartzCore 0x1c52a1388 CA :: Context :: commit_transaction (CA :: Transaction ) + 5329 QuartzCore 0x1c52cf330 CA :: Transaction :: commit () + 64010 QuartzCore 0x1c52cff20 CA :: Transaction :: observer_callback (__ CFRunLoopObserver , unsigned long, void *) + 92
11 CoreFoundation 0x1c0e165f8 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
12 CoreFoundation 0x1c0e11320 __CFRunLoopDoObservers + 412
13 CoreFoundation 0x1c0e1189c __CFRunLoopRun + 1228
14 CoreFoundation 0x1c0e110b0 CFRunLoopRunSpecific + 436
15 GraphicsServices 0x1c301179c GSEventRunModal + 104
16 UIKitCore 0x1ed647978 UIApplicationMain + 212
17 Easynvest 0x104ac72d4 principal + 17 (main.swift: 17)
18 libdyld.dylib 0x1c08d68e0 start + 4

Ambiente de gráficos

Versão dos gráficos / filial / número do compromisso : 3.3.0
Versão do Xcode : 10.2.1
Versão Swift : Swift 5
Gráficos de execução da (s) plataforma (s) : IOS
versão do macOS executando Xcode : 10.14.5

Infelizmente não tenho nenhum cenário para reproduzir isso, alguma ideia de como resolver esse problema?

bug

Todos 21 comentários

Eu tenho o mesmo problema ... Ainda estou tentando reproduzi-lo em meu ambiente de teste.

A falha começa a aparecer após atualizar a biblioteca de 3.2.2 para 3.3.0 (para corrigir o problema 3915 )

Algum avanço nisso?

Falha: com.apple.main-thread
0 Gráficos 0x1060e9ad4 LineChartRenderer.drawCircles (contexto :) + 108 (BarLineScatterCandleBubbleRenderer.swift: 108)
1 Gráficos 0x106052f44 BarLineChartViewBase.draw (:) + 237 (BarLineChartViewBase.swift: 237)
2 gráficos 0x106053f9c @objc BarLineChartViewBase.draw (:) ()

você pode postar o motivo da falha? e talvez depure um pouco?

Tendo um problema semelhante, no entanto, parece estar relacionado a gráficos de dispersão no meu caso.

Depurador Xcode:
Screen Shot 2019-09-03 at 15 26 19

Firebase Crashlytics:
Screen Shot 2019-09-03 at 15 27 11

Preciso do motivo da falha, não apenas da pilha. Você pode enviar isso?

@caloon parece que você pode reproduzi-lo de forma confiável? Você pode enviar um trecho de código para que eu possa reproduzir com ChartsDemo?

Não, o problema não ocorreu ao testar o aplicativo em meu dispositivo de teste e não consegui reproduzir o problema. A única coisa que tenho é o rastreamento de pilha que recebi por meio do Crashlytics e do Xcode Debugger.

então não é fácil saber onde está a falha. Você tem o número da linha do acidente?

Mencionei esse problema no nº 4132 e expliquei o que - na minha opinião - causou o problema. Além disso, o relator de bug mostra que o problema ocorre no método drawValues ​​(context :). Mais fácil seria reverter as pequenas "melhorias" mencionadas em # 4132 que causaram o colapso da estabilidade do framework.

A meu ver, a versão 3.2.1 é a última compilação estável e eu desencorajo fortemente qualquer pessoa a usar uma versão mais recente se quiser lançar um aplicativo estável. Este é um problema sério que fez com que 5% dos meus usuários travassem.

Vou usar este tópico para discussão.
Em # 4132 você mencionou https://github.com/danielgindi/Charts/pull/3164 , no entanto, isso é mesclado no branch 4.0, não no master, então não acho que isso causaria um problema para o lançamento oficial.

para https://github.com/danielgindi/Charts/pull/3891 , você afirma que está adicionando mais problemas, no entanto, não vi um motivo claro para que esse novo iterador esteja causando o problema OOB ou, não sei o que Consertar. # 3891 está usando um iterador padrão, como disse

Eu gostaria de consertar, se houver, o mais rápido possível. No entanto, até agora não tenho idéia do que está causando a falha.

E, @caloon , sua falha está em um renderizador de gráfico de dispersão, parece que você pode reproduzi-la? Eu preciso reproduzi-lo.

Este pôster falha em

0 Gráficos 0x1060e9ad4 LineChartRenderer.drawCircles (contexto :) + 108 (BarLineScatterCandleBubbleRenderer.swift: 108)

que é diferente do seu, no entanto, ambos os métodos têm

para j em _xBounds

com a suposição cega de que, se suspeitamos que # 3891 é o problema, pelo menos precisamos saber o que está acontecendo.

e para todos que têm travamento semelhante, tudo que preciso é uma maneira confiável de reproduzir, se você achar que é uma taxa de travamento crescente. no entanto, até agora não recebemos um. O log de travamento ainda é difícil de encontrar o que está errado.

Se for uma porção muito pequena, podem ser alguns casos de canto do seu lado? Tentei uma única entrada de dados e nenhuma entrada de dados, nenhuma falha para gráfico de linha e gráfico de dispersão.

E se você conseguir encontrar a falha, a correção pode ser muito rápida e mesclada para que eu possa lançar uma nova versão esta semana.

Consegui causar esta falha ao inserir dados com valores x fora de ordem

@ liuxuan30 parece que o mínimo é 98 e o máximo é 1, o que quebra o iterador
image

por que está causando o mínimo e o máximo ao contrário?

Olá @ liuxuan30 Você encontrou a solução para isso. Também estou recebendo o mesmo erro.

@ liuxuan30 Olá, também estou recebendo este erro no aplicativo de produção, mas não consigo replicá-lo. Mesmo erro que

Screenshot 2020-08-25 at 10 53 45
Este é o rastreamento da pilha

Espero que isso não seja uma pista falsa.

Eu estava recebendo este erro, 100% reproduzível em 3.5.0, XCode 12 beta.
Corrigido depois de um tempo embaraçosamente longo, forçando manualmente o recálculo de mínimo e máximo para meu conjunto de dados e os dados do gráfico.

        self.downloadDataSet.append(newThroughtputPoint)
        self.downloadDataSet.calcMinMax()
        chartView.data?.calcMinMax()
        self.chartView.notifyDataSetChanged()

Eu não entendo o que ele está fazendo em drawCircles, já que eu os desabilitei.

se você anexar, você classifica? Ou está relacionado com valores não classificados para travar? Já faz muito tempo para isso e, honestamente, não tenho certeza de qual é o problema agora

Alguma atualização para este problema?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

coop44483 picture coop44483  ·  3Comentários

PrashantKT picture PrashantKT  ·  3Comentários

kwstasna picture kwstasna  ·  3Comentários

deepumukundan picture deepumukundan  ·  3Comentários

BrandonShega picture BrandonShega  ·  4Comentários