Não tenho uma solução completa, porque não sei nada sobre o SGE. Mas eu posso explicar parte do problema.
A máquina em que seu script funciona está executando uma versão antiga do sistema operacional. Isso é evidente não apenas pelo número da versão do kernel, mas também pelo fato de não receber atualizações de segurança há algum tempo. Especificamente, acho que ele está executando uma versão do bash que é vulnerável ao bug Shellshock .
O Bash (ab) usa o ambiente para passar funções. Normalmente, o ambiente é usado apenas para transmitir dados, na forma de uma série de itens no formato NAME=VALUE
. Versões mais antigas do bash adicionam itens do formulário NAME=() {CODE}
, que em algumas circunstâncias permitiam injetar código definindo uma variável que um script nunca usaria - o bug do shellshock . A correção para o bug mudou a maneira como as funções são codificadas para BASH_FUNC_NAME%%=() {CODE}
.
Evidentemente, alguma parte da sua configuração despeja o ambiente e analisa-o. Isso pode ser uma parte do SGE ou algo específico para sua configuração. Uma razão plausível para fazer isso é salvar o ambiente no qual um trabalho foi enviado para executar o trabalho no mesmo ambiente.
Algo em algum lugar está definindo uma função chamada module
no bash e exportando-a. O código seria algo como
module () {
…
}
export -f module
A correção é atualizar o analisador de ambiente para algo que possa lidar com a nova codificação bash ou parar de exportar funções.