a atualização rápida do compartilhamento de rede no win7 explorer faz com que as operações de arquivos falhem nesse compartilhamento

1

primeira vez postando aqui! Eu não tenho pontos de reputação para imagens inline e links ainda, desculpe.

Versão resumida:

Estou investigando um problema relatado por nossos usuários. eles têm scripts em lote que copiam / mesclam / renomeam / zip / excluem rapidamente arquivos em um compartilhamento de rede e, às vezes, o lote em lote falha porque não consegue encontrar / acessar um dos arquivos.

Ao abrir o compartilhamento no Windows Explorer e atingir rapidamente a F5, isso aumenta drasticamente a taxa de erro. Deixar a pasta sozinha, fechando completamente o explorador, removeria o problema quase completamente.

Eu o reduzi a (provavelmente) ser um problema com o windows explorer ou smb2.x no windows7 e 2008r2. Win8, Win10 e 2012R2 não mostram esse problema. Quero verificar com a comunidade se isso é um erro nos meus métodos de teste ou se há realmente um bug no sistema operacional.

Versão longa, etapas para reproduzir, soluções testadas:

Para testar o problema, um arquivo de lote foi criado

  • Crie um arquivo com um número aleatório dentro de
  • Renomeie o arquivo 4 vezes (por exemplo, arquivo.txt - > arquivo.bak - > arquivo.old - > arquivo.txt)
  • Leia o conteúdo do arquivo e compare os números

Isso é executado em um loop infinito e, em um sistema sem erros de CPU / memória, ele nunca deve falhar. Mas, às vezes, simplesmente não é possível encontrar o arquivo que ele deve renomear ou ler (por exemplo, ele falha com "não é possível encontrar file.old")

aqui está uma captura de tela de exemplo:


cliqueparaampliar

Paragarantirqueissonãosejaumproblemanobatchfile,codifiqueiumpequenoprogramac#queessencialmentefazomesmo.Eupossoreproduziroproblema1:1comesteprograma.

Duranteoteste,noteiquequandoeutenhoapastadedestinoabertanoWindowsExplorer,oproblemaaconteceucommaisfreqüênciadoquequandoeunãotinhaapastaaberta.Eususpeitavadeumarelaçãocom"atualização automática". por "forçar" esta condição (botão F5) eu poderia reproduzir o problema agora cada vez muito rapidamente.

Então, fiz o seguinte teste: serverfault.com/questions/642254/files-not-appearing-caching-or

Desative as configurações de atualização automática do explorador no cliente win7

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
    "NoRemoteRecursiveEvents"=dword:00000001  
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
    "NoRemoteChangeNotify"=dword:00000001  

isso resolveu o problema ao não tocar no teclado, o programa é executado por um longo tempo sem problemas. mas assim que eu manualmente pressiono e continuo pressionando F5 para atualizar rapidamente o explorador, o problema aparece novamente:


cliqueparaampliar

Minhaconclusãonesteponto:afunção"refresh" dos exploradores causa um problema na transmissão de "rede", ou bloqueio de arquivo, violação de compartilhamento, etc ...?

Mais investigação: Eu queria descobrir em quais sistemas isso acontece, então eu fiz muitos testes em diferentes sistemas operacionais (sempre usando o truque de atualização da F5). Eu poderia reproduzir este problema apenas no win7 e 2008r2, win8,10 e 2012r2 ficaram livres de erros. Eu descartei as configurações de segurança da empresa executando os testes em VMs não associadas ao domínio e em computadores particulares em casa. O problema também existe lá.

a única coisa que resta a testar é a versão SMB, portanto, desativei o SMB2.x no win7 (http: //support.microsoft.com/de-de/kb/2696547)

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi 
    sc.exe config mrxsmb20 start= disabled

resultado: o problema foi "resolvido" (mais uma solução), alternando para o SMB1.5 no windows 7.

Conclusão:

A criação / renomeação rápida de arquivos em compartilhamentos de rede durante a atualização da pasta do explorador causa problemas no win7 e no 2008r2 ao usar o SMB2.x. comutação para SMB 1.5 resolve problema. OS mais recentes não são afetados, independentemente da versão do SMB.

Minhas perguntas são:

  • Testo isso corretamente, alguém pode reproduzir isso? batchfile e c # source estão nos links pastebin.
  • O windows explorer ou a pilha de smb no buggy win7 / 2008r2? devo abrir um ticket de suporte da Microsoft?
  • Existem configurações adicionais para ajustar o serviço SMB / lanman / etc, o que poderia ajudar nesse caso?

batchfile - > pastebin.com/Dc2QHB8y

programa de teste c # - > pastebin.com/Xx11MFdr

lista de testes de sistemas - > pastebin.com/p24Jz0Aw

    
por Robert R 09.04.2016 / 13:49

0 respostas