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.

Oi Vinícius tudo bem?

Eu testei num ambiente que copiei de produção com backup do All in One WP Migration e tudo funcionou perfeitamente.

Contudo no ambiente de produção, eu atualizei o tainacan e o problema persiste, com o mesmo comportamento e a mesma mensagem de erro.

Estou usando o Tainacan 0.21.15 em ambos os ambientes.

O que eu consegui identificar agora é que a mudanças pedidas em lote acontecem corretamente e é possível ver nos itens selecionados a mudança.

Contudo o processo não termina e, assim, outros processos de alteração em lote ficam travados aguardando o término do primeiro.

Você tem ideia da razão que poderia estar causando esse comportamento só em produção? Eu sei que tenho muito mais regras do NGINX de segurança setada nesse ambiente de produção. Será que alguma delas poderia estar causando esse comportamento?

Como muita coisa é executada em REST, fiquei com essa dúvida. O problema é que não consigo encontrar nada em logs ou no console do chrome que justifique essa hipótese. Ainda mais sabendo que o site funciona normalmente.

A única coisa diferente é que de vez em quando, em alguns momentos de uso do site, aparece uma mensagem em vermelho do tainacan dizendo que houve um erro 500. Esse é outro que nunca consegui traquear também :confused:

E o log do item que trava fica assim, apesar de ter executado todos os registros:

[2025-06-03 18:40:05] New Request
[2025-06-03 18:40:07] User in process: 5
[2025-06-03 18:40:07] criando metadado de controle da edição em massa para o item: “814”
[2025-06-03 18:40:09] User in process: 5
[2025-06-03 18:40:09] criando metadado de controle da edição em massa para o item: “784”
[2025-06-03 18:40:09] User in process: 5
[2025-06-03 18:40:09] metadado de controle da edição em massa criado
[2025-06-03 18:40:09] User in process: 5
[2025-06-03 18:40:14] A edição em massa processou o item: “814”

Vc tem alguma ideia de como proceder?

Obrigado,

Achei que tinha resolvido, mas falei cedo demais.

Mesmo na última versão, mesmo recuperando backups em novos bancos de dados, nada resolveu. Nem removendo e adicionando novamente o plugin do tainacan, o proceso em bulk terminou :frowning:

Vocês poderiam, por favor, me ajudar a depurar o problema, pois não existe nenhum log no servidor que indique qualquer erro. a função “set” retorna o ID do BG process, ele começa a executar e parece que falha no último item sempre. Ele até executa as mudanças nos itens anteriores ao último

Dentro do banco de dados (wp_tnc_bg_process) o processo fica running, mas o log da atividade fica travado no último item.`Eu tentei até executar os cronjobs do tainacan manualmente pra ver se resolvia e nada.

Mesmo assim, eu vejo as mudanças acontecendo em todos os itens. Parece que o que está com problema é a finalização do processo e não a execução das mudanças nos metadados.

O mais estranho é que, se eu deleto o plugin do tainacan e executo, ele finaliza o processo. foi isso que me levou a achar que tinha resolvido.

[2025-06-18 19:18:36]   New Request
[2025-06-18 19:18:38]   User in process: 5
[2025-06-18 19:18:38]   Creating bulk edit control metadata for item: "73316"
[2025-06-18 19:18:39]   User in process: 5
[2025-06-18 19:18:39]   Creating bulk edit control metadata for item: "73280"
[2025-06-18 19:18:39]   User in process: 5
[2025-06-18 19:18:39]   Creating bulk edit control metadata for item: "73144"
[2025-06-18 19:18:39]   User in process: 5
[2025-06-18 19:18:39]   Creating bulk edit control metadata for item: "73072"
[2025-06-18 19:18:40]   User in process: 5
[2025-06-18 19:18:40]   Creating bulk edit control metadata for item: "70874"
[2025-06-18 19:18:40]   User in process: 5
[2025-06-18 19:18:40]   Creating bulk edit control metadata for item: "70652"
[2025-06-18 19:18:40]   User in process: 5
[2025-06-18 19:18:40]   Bulk edit control metadata created
[2025-06-18 19:18:40]   User in process: 5
[2025-06-18 19:18:40]   Bulk edit has processed the item ID: "73316"
[2025-06-18 19:18:40]   User in process: 5
[2025-06-18 19:18:40]   Bulk edit has processed the item ID: "73280"
[2025-06-18 19:18:40]   User in process: 5
[2025-06-18 19:18:40]   Bulk edit has processed the item ID: "73144"
[2025-06-18 19:18:41]   User in process: 5
[2025-06-18 19:18:41]   Bulk edit has processed the item ID: "73072"
[2025-06-18 19:18:41]   User in process: 5
[2025-06-18 19:18:41]   Bulk edit has processed the item ID: "70874"
[2025-06-18 19:18:41]   User in process: 5
[2025-06-18 19:18:41]   Bulk edit has processed the item ID: "70652"

e aqui a imagem do processo correspondente que não finaliza nunca:

E isso aqui é o que aparece no banco de dados na tabela wp_tnc_bg_process.data:

a:7:{s:2:"id";s:13:"68530c7a6ed8b";s:13:"in_step_count";i:0;s:12:"current_step";i:0;s:10:"transients";a:1:{s:6:"author";i:5;}s:8:"group_id";s:13:"68530c7a6eda5";s:14:"bulk_edit_data";a:6:{s:5:"value";s:1:"1";s:6:"method";s:9:"set_value";s:9:"old_value";N;s:12:"metadatum_id";i:213;s:15:"metadatum_id_to";N;s:17:"metadatum_id_from";N;}s:10:"class_name";s:51:"Tainacan\GenericBackgroundProcess\Bulk_Edit_Process";}

Encontrei mais um comportamento estranho.

Assim que terminei a mensagem, o processo terminou magicamente. A única coisa que fiz foi instalar um plugin pra tentar ver os transientes. (transient manager)

Testei então de novo alterar os mesmos itens. No caso, eu fiz um copiar valor de um metadado de texto simples (data) para outro de texto simples (gestão). Esses metadados eu tenho usado nos testes.

Fiquei surpreso em ver que funcionou normalmente o processo. sem lentidão ou problema.

Fiz então um Setar valores para o Gestão dos mesmos 6 itens.

E ele ficou travado de novo.

E agora acabou de terminar o primeiro processo, só que os horários estão estranhos (em GMT).

[2025-06-18 19:34:43]   New Request
[2025-06-18 19:34:45]   User in process: 5
[2025-06-18 19:34:45]   Creating bulk edit control metadata for item: "73316"
[2025-06-18 19:34:46]   User in process: 5
[2025-06-18 19:34:46]   Creating bulk edit control metadata for item: "73280"
[2025-06-18 19:34:46]   User in process: 5
[2025-06-18 19:34:46]   Creating bulk edit control metadata for item: "73144"
[2025-06-18 19:34:46]   User in process: 5
[2025-06-18 19:34:46]   Creating bulk edit control metadata for item: "73072"
[2025-06-18 19:34:46]   User in process: 5
[2025-06-18 19:34:46]   Creating bulk edit control metadata for item: "70874"
[2025-06-18 19:34:47]   User in process: 5
[2025-06-18 19:34:47]   Creating bulk edit control metadata for item: "70652"
[2025-06-18 19:34:47]   User in process: 5
[2025-06-18 19:34:47]   Bulk edit control metadata created
[2025-06-18 19:34:47]   User in process: 5
[2025-06-18 19:34:47]   Bulk edit has processed the item ID: "73316"
[2025-06-18 19:34:47]   User in process: 5
[2025-06-18 19:34:47]   Bulk edit has processed the item ID: "73280"
[2025-06-18 19:34:47]   User in process: 5
[2025-06-18 19:34:47]   Bulk edit has processed the item ID: "73144"
[2025-06-18 19:34:47]   User in process: 5
[2025-06-18 19:34:47]   Bulk edit has processed the item ID: "73072"
[2025-06-18 19:34:48]   User in process: 5
[2025-06-18 19:34:48]   Bulk edit has processed the item ID: "70874"
[2025-06-18 19:34:48]   User in process: 5
[2025-06-18 19:34:48]   Bulk edit has processed the item ID: "70652"
        --- FRED AQUI é onde ele finalmente termina o processo aparentemente com um "new request" que não tenho ideia da origem. ----
**[2025-06-18 19:46:26]   New Request**
**[2025-06-18 19:46:28]   User in process: 5**
**[2025-06-18 19:46:28]   Bulk edit control metadata has already been created**
**[2025-06-18 19:46:28]   User in process: 5**
**[2025-06-18 19:46:28]   Bulk edit has processed the item ID: "73316"**
**[2025-06-18 19:46:29]   User in process: 5**
**[2025-06-18 19:46:29]   Bulk edit has processed the item ID: "73280"**
**[2025-06-18 19:46:29]   User in process: 5**
**[2025-06-18 19:46:29]   Bulk edit has processed the item ID: "73144"**
**[2025-06-18 19:46:30]   User in process: 5**
**[2025-06-18 19:46:30]   Bulk edit has processed the item ID: "73072"**
**[2025-06-18 19:46:30]   User in process: 5**
**[2025-06-18 19:46:30]   Bulk edit has processed the item ID: "70874"**
**[2025-06-18 19:46:30]   User in process: 5**
**[2025-06-18 19:46:30]   Bulk edit has processed the item ID: "70652"**
**[2025-06-18 19:46:30]   User in process: 5**
**[2025-06-18 19:46:35]   finished**
**[2025-06-18 19:46:35]   Total items processed: 6**
**[2025-06-18 19:46:35]   Process Finished**

Sabe-se lá por que, ele recebe uma new request e finalmente termina. Foram 10min de distância ±.

Testei novamente essa hipótese. Eu tinha um cron no servidor que executava o cron do WP a cada 10 min. Mudei para 1min só por teste, mas o WP estava com seu próprio cron habilitado. Pelo que vi, o do tainacan executa a cada 5 min, então não teria relação com o meu.

Mesmo com essa configuração, passados mais de 10 min e nada do processo terminar.

Não sei o que gera esse New Request, mas parece que ele consegue reexecutar os itens (reexecutar mesmo, porque eu tinha alterado um dado no meio do caminho e ele pegou o novo dado pra copiar) e, finalmente, finalizar o processo.

Esta última tentativa levou 30 minutos pra conseguir terminar corretamente. Vi várias entradas do New Request nela, aproximadamente a cada 10min. E a imagem abaixo é referente a essa execução também.

[2025-06-18 19:52:19]   New Request
[2025-06-18 19:52:21]   User in process: 5
[2025-06-18 19:52:21]   Creating bulk edit control metadata for item: "73316"
[2025-06-18 19:52:23]   User in process: 5
[2025-06-18 19:52:23]   Creating bulk edit control metadata for item: "73280"
[2025-06-18 19:52:23]   User in process: 5
[2025-06-18 19:52:23]   Creating bulk edit control metadata for item: "73144"
[2025-06-18 19:52:24]   User in process: 5
[2025-06-18 19:52:24]   Creating bulk edit control metadata for item: "73072"
[2025-06-18 19:52:24]   User in process: 5
[2025-06-18 19:52:24]   Creating bulk edit control metadata for item: "70874"
[2025-06-18 19:52:24]   User in process: 5
[2025-06-18 19:52:24]   Creating bulk edit control metadata for item: "70652"
[2025-06-18 19:52:24]   User in process: 5
[2025-06-18 19:52:24]   Bulk edit control metadata created
[2025-06-18 19:52:24]   User in process: 5
[2025-06-18 19:52:24]   Bulk edit has processed the item ID: "73316"
[2025-06-18 19:52:25]   User in process: 5
[2025-06-18 19:52:25]   Bulk edit has processed the item ID: "73280"
[2025-06-18 19:52:25]   User in process: 5
[2025-06-18 19:52:25]   Bulk edit has processed the item ID: "73144"
[2025-06-18 19:52:25]   User in process: 5
[2025-06-18 19:52:25]   Bulk edit has processed the item ID: "73072"
[2025-06-18 19:52:25]   User in process: 5
[2025-06-18 19:52:25]   Bulk edit has processed the item ID: "70874"
[2025-06-18 19:52:26]   User in process: 5
[2025-06-18 19:52:26]   Bulk edit has processed the item ID: "70652"
[2025-06-18 20:02:34]   New Request
[2025-06-18 20:02:39]   User in process: 5
[2025-06-18 20:02:39]   Bulk edit control metadata has already been created
[2025-06-18 20:02:39]   User in process: 5
[2025-06-18 20:02:40]   Bulk edit has processed the item ID: "73316"
[2025-06-18 20:02:44]   User in process: 5
[2025-06-18 20:02:44]   Bulk edit has processed the item ID: "73280"
[2025-06-18 20:12:37]   New Request
[2025-06-18 20:12:40]   User in process: 5
[2025-06-18 20:12:40]   Bulk edit control metadata has already been created
[2025-06-18 20:12:40]   User in process: 5
[2025-06-18 20:12:40]   Bulk edit has processed the item ID: "73316"
[2025-06-18 20:12:44]   User in process: 5
[2025-06-18 20:12:44]   Bulk edit has processed the item ID: "73280"
[2025-06-18 20:12:45]   User in process: 5
[2025-06-18 20:12:45]   Bulk edit has processed the item ID: "73144"
[2025-06-18 20:12:45]   User in process: 5
[2025-06-18 20:12:45]   Bulk edit has processed the item ID: "73072"
[2025-06-18 20:12:45]   User in process: 5
[2025-06-18 20:12:45]   Bulk edit has processed the item ID: "70874"
[2025-06-18 20:12:45]   User in process: 5
[2025-06-18 20:12:46]   Bulk edit has processed the item ID: "70652"
[2025-06-18 20:26:46]   New Request
[2025-06-18 20:26:47]   User in process: 5
[2025-06-18 20:26:47]   Bulk edit control metadata has already been created
[2025-06-18 20:26:47]   User in process: 5
[2025-06-18 20:26:47]   Bulk edit has processed the item ID: "73316"
[2025-06-18 20:26:48]   User in process: 5
[2025-06-18 20:26:48]   Bulk edit has processed the item ID: "73280"
[2025-06-18 20:26:49]   User in process: 5
[2025-06-18 20:26:49]   Bulk edit has processed the item ID: "73144"
[2025-06-18 20:26:49]   User in process: 5
[2025-06-18 20:26:49]   Bulk edit has processed the item ID: "73072"
[2025-06-18 20:26:49]   User in process: 5
[2025-06-18 20:26:49]   Bulk edit has processed the item ID: "70874"
[2025-06-18 20:26:49]   User in process: 5
[2025-06-18 20:26:49]   Bulk edit has processed the item ID: "70652"
[2025-06-18 20:26:50]   User in process: 5
[2025-06-18 20:26:54]   finished
[2025-06-18 20:26:54]   Total items processed: 6
[2025-06-18 20:26:54]   Process Finished

Obrigado!