Erro ao tentar excluir informações de metadado em lote

Estamos tentando excluir as informações de um metadado em lote, mas o processo não termina.

ao tentar pausar o processo, um erro 500 é gerado e, ao olhar os logs, é possível ver um fatal error sendo gerado:

[15-Jan-2025 11:24:55 UTC] PHP Fatal error:  Uncaught Error: Attempt to assign property "log" on null in /vol/www/centrodememoria.sebraesp.com.br/public/wp-content/plugins/tainacan/classes/api/endpoints/clas
s-tainacan-rest-background-processes-controller.php:253
Stack trace:
#0 /vol/www/centrodememoria.sebraesp.com.br/public/wp-content/plugins/tainacan/classes/api/endpoints/class-tainacan-rest-background-processes-controller.php(327): Tainacan\API\EndPoints\REST_Background_Proce
sses_Controller->prepare_item_for_response()
#1 /vol/www/centrodememoria.sebraesp.com.br/public/wp-includes/rest-api/class-wp-rest-server.php(1292): Tainacan\API\EndPoints\REST_Background_Processes_Controller->update_item()
#2 /vol/www/centrodememoria.sebraesp.com.br/public/wp-includes/rest-api/class-wp-rest-server.php(1125): WP_REST_Server->respond_to_request()
#3 /vol/www/centrodememoria.sebraesp.com.br/public/wp-includes/rest-api/class-wp-rest-server.php(439): WP_REST_Server->dispatch()
#4 /vol/www/centrodememoria.sebraesp.com.br/public/wp-includes/rest-api.php(449): WP_REST_Server->serve_request()
#5 /vol/www/centrodememoria.sebraesp.com.br/public/wp-includes/class-wp-hook.php(324): rest_api_loaded()
#6 /vol/www/centrodememoria.sebraesp.com.br/public/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters()
#7 /vol/www/centrodememoria.sebraesp.com.br/public/wp-includes/plugin.php(565): WP_Hook->do_action()
#8 /vol/www/centrodememoria.sebraesp.com.br/public/wp-includes/class-wp.php(418): do_action_ref_array()
#9 /vol/www/centrodememoria.sebraesp.com.br/public/wp-includes/class-wp.php(813): WP->parse_request()
#10 /vol/www/centrodememoria.sebraesp.com.br/public/wp-includes/functions.php(1336): WP->main()
#11 /vol/www/centrodememoria.sebraesp.com.br/public/wp-blog-header.php(16): wp()
#12 /vol/www/centrodememoria.sebraesp.com.br/public/index.php(17): require('...')
#13 {main}
  thrown in /vol/www/centrodememoria.sebraesp.com.br/public/wp-content/plugins/tainacan/classes/api/endpoints/class-tainacan-rest-background-processes-controller.php on line 253

Alguma coisa fez com que o processo de lote ficasse travado (nao consigo saber por quê), mas sem conseguir limpar o processo que está travado, os outros processos não executam e não consigo limpar em lote os itens que preciso.

Tainacan: 0.21.12
Tainacan support for blocksy: 0.3.7
Blocksy: 2.0.84
Blocksy companion: 2.0.84

Vocês conseguem me ajudar nessa?

Obrigado!

Pessoal, alguma informação sobre esse caso? To tentando de toda forma fazer modificação em lote, mas não funciona :frowning:

bom dia @marvila estou investigando aqui, pro algum motivo parece que um registro de log de atualizações não está sendo recuperado o que gera esse erro.

o processo que você tentou para, ele ainda continua marcando em execução?

Oi Vinicius, tudo bem?

Acredito que sim. A cliente reportou que ainda não consegue fazer as mudanças em lote.

Tem alguma maneira de cancelar o processo para ela testar de novo? Nem que seja entrando no banco de dados ou no cron do WP?

Obrigado,

pelo banco seria alterando diretamente o valor de duas colunas do registro na tabela [WP_PREFIX]_tnc_bg_process, a coluna status alterando o valor de running para cancelled e a coluna done para 1.

tentei recriar esse cenário aqui localmente mas não conseguir ainda.

Obrigado pela resposta rápida, Vinícius!

Não sei exatamente por que o erro aconteceu e nos logs não tenho a data exata.

Também vou tentar reproduzir no futuro pra ver se o processo gera algum erro que possa indicar a razão.

Obrigado!

oi @vnmedeiros, tudo bem?

Cara, voltei com este problema. Consegui cancelar o item que estava travando a fila, mas ainda não consegui resolver o problema.

O item estava travado desde 15/jan, cancelei pelo banco de dados como vc sugeriu.

Eu já tinha atualizado tudo no wordpress, mas ainda asism está com problema.

Eu tinha mandado alterar o status de 2 itens e eles estavam bloqueados esperando esse terminar.

Depois de cancelar no banco de dados, esse processo novo continuou parado. Criei um outro fazendo a mesma coisa e esse primeiro que estava parado, foi ser executado, mas agora é ele que está travado sem completar. Mandei outro item e ainda assim ele está esperando o primeiro de hoje.

Esse é o erro que dá quando clico em Know More da mensagem que aparece quando tento clicar em stop na tela.

Vc consegue me ajudar a depurar?

Obrigado!

Aqui está a entrada nos logs do WP que me parecem relacionadas a esse problema:

[07-Apr-2025 17:01:06 UTC] PHP Warning:  Attempt to read property "ID" on null in /vol/www/public/wp-content/plugins/tainacan/classes/api/endpoints/class-tainacan-rest-background-processes-controller.php on line 252
[07-Apr-2025 17:01:06 UTC] PHP Warning:  Attempt to read property "action" on null in /vol/www/public/wp-content/plugins/tainacan/classes/api/endpoints/class-tainacan-rest-background-processes-controller.php on line 253
[07-Apr-2025 17:01:06 UTC] PHP Fatal error:  Uncaught Error: Attempt to assign property "log" on null in /vol/www/public/wp-content/plugins/tainacan/classes/api/endpoints/class-tainacan-rest-background-processes-controller.php:253
Stack trace:
#0 /vol/www/public/wp-content/plugins/tainacan/classes/api/endpoints/class-tainacan-rest-background-processes-controller.php(327): Tainacan\API\EndPoints\REST_Background_Processes_Controller->prepare_item_for_response()
#1 /vol/www/public/wp-includes/rest-api/class-wp-rest-server.php(1292): Tainacan\API\EndPoints\REST_Background_Processes_Controller->update_item()
#2 /vol/www/public/wp-includes/rest-api/class-wp-rest-server.php(1125): WP_REST_Server->respond_to_request()
#3 /vol/www/public/wp-includes/rest-api/class-wp-rest-server.php(439): WP_REST_Server->dispatch()
#4 /vol/www/public/wp-includes/rest-api.php(449): WP_REST_Server->serve_request()
#5 /vol/www/public/wp-includes/class-wp-hook.php(324): rest_api_loaded()
#6 /vol/www/public/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters()
#7 /vol/www/public/wp-includes/plugin.php(565): WP_Hook->do_action()
#8 /vol/www/public/wp-includes/class-wp.php(418): do_action_ref_array()
#9 /vol/www/public/wp-includes/class-wp.php(813): WP->parse_request()
#10 /vol/www/public/wp-includes/functions.php(1336): WP->main()
#11 /vol/www/public/wp-blog-header.php(16): wp()
#12 /vol/www/public/index.php(17): require('...')
#13 {main}
  thrown in /vol/www/public/wp-content/plugins/tainacan/classes/api/endpoints/class-tainacan-rest-background-processes-controller.php on line 253

Olhando agora, parece que os dois warnings no início podem estar relacionados, pois são tentativas de acessar as variáveis sem ter o array e pode ser q esses dados fossem importantes pra seguir em frente.

Novas versões::

Tainacan: 0.21.14
Tainacan support for blocksy: 0.3.7
Blocksy: 2.0.84
Blocksy companion: 2.0.95

olá @marvila, você tentou refazer essa operação coma versão mais recente, creio que fizemos um fix para esse erro que está perecendo no log de erros do servidor.