KB4563195 - CORREÇÃO: sp_execute_external_script podem falhar ao executar scripts R que usam o contexto de computação RxLocalParallel ou o pacote doParallel R no SQL Server 2019

Aplica-se A
SQL Server 2019 on Windows

Sintomas

Suponha que você execute scripts R que usam o contexto de computação RxLocalParallel ou o pacote doParallel R. Quando você usa sp_execute_external_script para executar scripts que são escritos em R, você percebe que a consulta pode travar durante a execução das funções paralelas.

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".

Resolução

Este problema foi corrigido na seguinte atualização cumulativa para SQL Server:

Acerca das atualizações cumulativas para SQL Server:

Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:

Solução

Para contornar o problema sem atualizar, você pode incluir algum código R adicional na parte superior do script no sp_execute_external_script. O código é o seguinte:

paralelo <- getNamespace("parallel")

unlockBinding("makePSOCKcluster", parallel)

internalMakePSOCKcluster <- parallel::makePSOCKcluster

wrapperMakePSOCKcluster = function(...) {

args <- lista(...)

if (!(" outfile" %in% nomes(args)) || IS.NULL(ARGS[["OUTFILE"]]))

⁠{⁠

args[["outfile"]] <- tempfile()

⁠}⁠

do.call(internalMakePSOCKcluster, args)

⁠}⁠

parallel$makePSOCKcluster <- wrapperMakePSOCKcluster

lockBinding("makePSOCKcluster", parallel)

Referências

Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.