libgit2 / libgit2/libgit2sharp
throw LibGit2SharpException or repo.Head.TIp==null while parallel
Aberta
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- C#
- Estrelas
- 3.5k
- Forks
- 925
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
Updated. Code simplified
// use LibGit2Sharp.0.16.0.0 from nuget
// https://github.com/torvalds/linux
var gitpath = @"path/to/linux/source";
var times = 10;
for (int i = 0; i < times; i++)
{
Task.Run(() =>
{
using (var repo = new Repository(gitpath))
{
// sometimes throw LibGit2SharpException here
// An exception of type 'LibGit2Sharp.LibGit2SharpException' occurred in LibGit2Sharp.dll but was not handled in user code
// Additional information: An error was raised by libgit2. Category = Os (Error).
// Failed to mmap. No data written: Not enough storage is available to process this command.
foreach (var commit in repo.Commits)
{
}
}
});
}
while (true)
{
using (var repo = new Repository(gitpath))
{
// sometimes repo.Head.Tip == null
repo.Head.Tip.ToString();
}
}
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece com a reprodução paralela usando Repository(gitpath), repo.Commits e repo.Head.Tip e, em seguida, execute-a no repositório Linux com LibGit2Sharp 0.16.0.0. Investigue se a construção ou o acesso concorrente ao repositório causam a falha de mmap e o tip nulo; considera-se concluído quando as operações paralelas relatadas não produzirem mais nenhum dos dois sintomas, com um teste de regressão se o projeto tiver um local adequado para testes.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- csharp, git
- Domínio
- devtools
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 25/100