Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quitting Vim sometimes takes forever in C++ mode #218

Closed
sgielen opened this issue Mar 28, 2013 · 7 comments
Closed

Quitting Vim sometimes takes forever in C++ mode #218

sgielen opened this issue Mar 28, 2013 · 7 comments

Comments

@sgielen
Copy link

sgielen commented Mar 28, 2013

The C++ code completion works beautifully, it's awesome! However, sometimes when I quit Vim after I edited a C++ file, quitting takes forever. Here's what I gathered:

(gdb) attach 7679
Attaching to program: `/sw/bin/vim', process 7679.
(gdb) bt
#0  0x00007fff9394f0fa in __psynch_cvwait ()
#1  0x00007fff8b3b1f89 in _pthread_cond_wait ()
#2  0x00000001044afabb in boost::condition_variable::wait ()
#3  0x000000010455d8e5 in boost::thread::join_noexcept ()
#4  0x00000001044ad895 in boost::thread::join ()
#5  0x00000001044a9d74 in YouCompleteMe::ClangCompleter::~ClangCompleter ()
#6  0x0000000104513210 in boost::python::objects::value_holder<YouCompleteMe::ClangCompleter>::~value_holder ()
(gdb) info threads
  3                         0x0000000104d2040a in clang::Type::getUnqualifiedDesugaredType ()
  2                         0x00007fff9394f386 in __semwait_signal ()
* 1 "com.apple.main-thread" 0x00007fff9394f0fa in __psynch_cvwait ()
(gdb) thread 3
[Switching to thread 3 (process 7679)]
0x0000000104d2040a in clang::Type::getUnqualifiedDesugaredType ()
(gdb) bt
#0  0x0000000104d2040a in clang::Type::getUnqualifiedDesugaredType ()
#1  0x0000000104c89b7a in clang::FunctionDecl::getNumParams ()
#2  0x0000000104c9ec2a in clang::CXXConstructorDecl::isCopyOrMoveConstructor ()
#3  0x0000000104b1fc58 in ResolveConstructorOverload ()
[...]
#22 0x000000010492a926 in clang::ParseAST ()
#23 0x000000010482a576 in clang::FrontendAction::Execute ()
#24 0x0000000104801100 in clang::ASTUnit::Parse ()
#25 0x000000010480522d in clang::ASTUnit::Reparse ()
#26 0x00000001047b46ad in clang_reparseTranslationUnit_Impl ()
#27 0x0000000104ddf53d in llvm::CrashRecoveryContext::RunSafely ()
#28 0x0000000104ddf5e9 in RunSafelyOnThread_Dispatch ()
#29 0x0000000104dee39d in ExecuteOnThread_Dispatch ()
#30 0x00007fff8b3ad742 in _pthread_start ()
#31 0x00007fff8b39a181 in thread_start ()
(gdb) continue
Continuing.
[...wait a few seconds...]
^C
Program received signal SIGINT, Interrupt.
(gdb) thread 3
[Switching to thread 3 (process 7679)]
0x0000000104d20407 in clang::Type::getUnqualifiedDesugaredType ()
(gdb) bt
#0  0x0000000104d20407 in clang::Type::getUnqualifiedDesugaredType ()
#1  0x0000000104c89b7a in clang::FunctionDecl::getNumParams ()
#2  0x0000000104c9ec2a in clang::CXXConstructorDecl::isCopyOrMoveConstructor ()
[.... i.e. still the same backtrace, so getUnqualifiedDesugaredType() doesn't return....]

This is vim 7.3.861, commit b4837c8. I can do further debugging, but can't make any modifications to the libclang used since it seems YCM's install.sh downloads a binary version of it?

@sgielen
Copy link
Author

sgielen commented Mar 28, 2013

I'm not sure if the third thread has anything to do with it; this also happens without that thread:

sjors@smbp:~$ gdb /sw/bin/vim
(gdb) attach 1149
Attaching to program: `/sw/bin/vim', process 1149.
(gdb) info threads
  2                         0x00007fff8f7fc122 in __psynch_mutexwait ()
* 1 "com.apple.main-thread" 0x00007fff8f7fc0fa in __psynch_cvwait ()

In this case, the main thread is blocking on a boost::thread again:

(gdb) bt
#0  0x00007fff8f7fc0fa in __psynch_cvwait ()
#1  0x00007fff8725ef89 in _pthread_cond_wait ()
#2  0x000000010668fabb in boost::condition_variable::wait ()
#3  0x000000010673d8e5 in boost::thread::join_noexcept ()
#4  0x000000010668d895 in boost::thread::join ()
#5  0x0000000106689d74 in YouCompleteMe::ClangCompleter::~ClangCompleter ()

And the second thread is waiting for a lock:

(gdb) thread 2
[Switching to thread 2 (process 1149)]
0x00007fff8f7fc122 in __psynch_mutexwait ()
(gdb) bt
#0  0x00007fff8f7fc122 in __psynch_mutexwait ()
#1  0x00007fff8725fd9d in pthread_mutex_lock ()
#2  0x0000000106690898 in boost::unique_lock<boost::mutex>::lock ()
#3  0x00000001066ba12b in YouCompleteMe::TranslationUnit::Reparse ()
#4  0x00000001066ba00b in YouCompleteMe::TranslationUnit::TranslationUnit ()
#5  0x000000010668f37a in _ZN5boost11make_sharedIN13YouCompleteMe15TranslationUnitERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEJRKNS3_6vectorI11UnsavedFileNS7_ISD_EEEERKNSC_IS9_NS7_IS9_EEEERPvEEENS_6detail15sp_if_not_arrayIT_E4typeEOT0_DpOT1_ ()
#6  0x000000010668abef in YouCompleteMe::ClangCompleter::GetTranslationUnitForFile ()
#7  0x000000010668a794 in YouCompleteMe::ClangCompleter::UpdateTranslationUnit ()
#8  0x00000001066abe96 in boost::detail::task_object<boost::function<void ()()>, void>::do_run ()
#9  0x0000000106691dbf in boost::detail::task_base<void>::run ()
#10 0x000000010668f971 in boost::packaged_task<void>::operator() ()
#11 0x000000010668d3b1 in YouCompleteMe::ClangCompleter::ClangThreadMain ()

@Valloric
Copy link
Member

I think I've encountered this a couple of times now too. It's pretty rare and not really repeatable so I haven't yet had the opportunity to debug it. Seems like it's caused by a race condition somewhere.

You can swap out the libclang.so that's placed in your YouCompleteMe/python directory with a custom libclang.so and YCM will use that.

@Valloric
Copy link
Member

I think I fixed this, but I'm not sure. Please reopen the issue if you encounter it again.

Thanks for the wealth of debugging information you provided. I would not have been able to track down the error without it.

@ixarka
Copy link

ixarka commented Aug 7, 2013

This exact same issue is happening to me. It occurs fairly frequently (probably ~75% of the time I close vim). I'm using a fairly recent ycm (4374da6) which should have the fix above. I snagged this stack trace in case it's helpful. Let me know if there's any additional information you need in tracking down the problem...I've put as verbose a dump as possible since I'm not sure what might help. This plugin is otherwise awesome and has been completely life-changing for me, so thanks.

I'm trying to switch my vim usage to avoid closing/reopening files too often but old habits die hard :)

(gdb) bt
#0  0x00000031ebe0aee9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00002aaaac150c6b in boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
#2  0x00002aaaac22387e in boost::thread::join_noexcept() ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
#3  0x00002aaaac13a02f in YouCompleteMe::ClangCompleter::~ClangCompleter() ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
#4  0x00002aaaac1b4d48 in boost::python::objects::value_holder<YouCompleteMe::ClangCompleter>::~value_holder() ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
#5  0x00002aaaac1f708d in instance_dealloc ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
<junk beneath here>

Possibly other useful threads?

(gdb) info threads
  Id   Target Id         Frame
  5    Thread 0x40632940 (LWP 12699) 0x00000031eb2cd722 in select () from /lib64/libc.so.6
  4    Thread 0x448c8940 (LWP 12705) 0x00000031ebe0cd21 in sem_wait () from /lib64/libpthread.so.0
  3    Thread 0x47acd940 (LWP 12710) 0x00000031ebe07b35 in pthread_join () from /lib64/libpthread.so.0
  2    Thread 0x482ce940 (LWP 12712) 0x00002aaaac56d7c0 in clang::QualType::getCommonPtr() const ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
* 1    Thread 0x2ac909940870 (LWP 12698) 0x00000031ebe0aee9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0

(gdb) t 3
[Switching to thread 3 (Thread 0x47acd940 (LWP 12710))]
#0  0x00000031ebe07b35 in pthread_join () from /lib64/libpthread.so.0
(gdb) bt
#0  0x00000031ebe07b35 in pthread_join () from /lib64/libpthread.so.0
#1  0x00002aaaad418a9e in llvm::llvm_execute_on_thread(void (*)(void*), void*, unsigned int) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#2  0x00002aaaad3f374c in llvm::CrashRecoveryContext::RunSafelyOnThread(void (*)(void*), void*, unsigned int) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#3  0x00002aaaac544ace in clang::RunSafely(llvm::CrashRecoveryContext&, void (*)(void*), void*, unsigned int) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#4  0x00002aaaac555815 in clang_reparseTranslationUnit ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#5  0x00002aaaac16c856 in YouCompleteMe::TranslationUnit::Reparse(std::vector<CXUnsavedFile, std::allocator<CXUnsavedFile> >&, unsigned int) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
#6  0x00002aaaac16ce46 in YouCompleteMe::TranslationUnit::TranslationUnit(std::string const&, std::vector<UnsavedFile, std::allocator<UnsavedFile> > const&, std::vector<std::string, std::allocator<std::string> > const&, void*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
#7  0x00002aaaac147884 in boost::detail::sp_if_not_array<YouCompleteMe::TranslationUnit>::type boost::make_shared<YouCompleteMe::TranslationUnit, std::string, std::vector<UnsavedFile, std::allocator<UnsavedFile> >, std::vector<std::string
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
#8  0x00002aaaac1370ec in YouCompleteMe::ClangCompleter::GetTranslationUnitForFile(std::string const&, std::vector<UnsavedFile, std::allocator<UnsavedFile> > const&, std::vector<std::string, std::allocator<std::string> > const&, bool&) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
#9  0x00002aaaac1378cf in YouCompleteMe::ClangCompleter::UpdateTranslationUnit(std::string const&, std::vector<UnsavedFile, std::allocator<UnsavedFile> > const&, std::vector<std::string, std::allocator<std::string> > const&) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
#10 0x00002aaaac15bc27 in boost::detail::task_object<boost::function<void ()>, void>::do_run() ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
#11 0x00002aaaac136498 in YouCompleteMe::ClangCompleter::ClangThreadMain() ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
#12 0x00002aaaac222604 in thread_proxy () from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/ycm_core.so
#13 0x00000031ebe0673d in start_thread () from /lib64/libpthread.so.0
#14 0x00000031eb2d44bd in clone () from /lib64/libc.so.6
#15 0x0000000000000000 in ?? ()

(gdb) t 2
[Switching to thread 2 (Thread 0x482ce940 (LWP 12712))]
#0  0x00002aaaac56d7c0 in clang::QualType::getCommonPtr() const ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
(gdb) bt
#0  0x00002aaaac56d7c0 in clang::QualType::getCommonPtr() const ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#1  0x00002aaaad25b04e in clang::Type::isIncompleteType(clang::NamedDecl**) const ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#2  0x00002aaaacdc98b7 in clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser&) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#3  0x00002aaaacdca882 in clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, unsigned int) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#4  0x00002aaaacc601ee in clang::TryReferenceInit(clang::Sema&, clang::Expr*, clang::QualType, clang::SourceLocation, bool, bool) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#5  0x00002aaaacc4f3cd in clang::TryCopyInitialization(clang::Sema&, clang::Expr*, clang::QualType, bool, bool, bool, bool) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#6  0x00002aaaacc5876d in clang::Sema::AddOverloadCandidate(clang::FunctionDecl*, clang::DeclAccessPair, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, bool) () from .vim/pathogen_plugins/Valloric-YouCompleteMe-43
#7  0x00002aaaacc5d2f6 in clang::Sema::AddFunctionCandidates(clang::UnresolvedSetImpl const&, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, clang::TemplateArgumentListInfo*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#8  0x00002aaaacc6905f in clang::Sema::CreateOverloadedBinOp(clang::SourceLocation, unsigned int, clang::UnresolvedSetImpl const&, clang::Expr*, clang::Expr*) () from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python
#9  0x00002aaaacae3f9d in BuildOverloadedBinOp(clang::Sema&, clang::Scope*, clang::SourceLocation, clang::BinaryOperatorKind, clang::Expr*, clang::Expr*) () from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libc
#10 0x00002aaaacb35c5d in clang::Sema::BuildBinOp(clang::Scope*, clang::SourceLocation, clang::BinaryOperatorKind, clang::Expr*, clang::Expr*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#11 0x00002aaaacb3619a in clang::Sema::ActOnBinOp(clang::Scope*, clang::SourceLocation, clang::tok::TokenKind, clang::Expr*, clang::Expr*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#12 0x00002aaaac8b7585 in clang::Parser::ParseRHSOfBinaryExpression(clang::ActionResult<clang::Expr*, true>, clang::prec::Level) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#13 0x00002aaaac8b270f in clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#14 0x00002aaaac8b3829 in clang::Parser::ParseExpression(clang::Parser::TypeCastState) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#15 0x00002aaaac8fd552 in clang::Parser::ParseExprStatement() ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#16 0x00002aaaac8f6abe in clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, bool, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#17 0x00002aaaac8f76ee in clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, bool, clang::SourceLocation*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#18 0x00002aaaac8f3416 in clang::Parser::ParseCompoundStatementBody(bool) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#19 0x00002aaaac8f3c9c in clang::Parser::ParseCompoundStatement(bool, unsigned int) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#20 0x00002aaaac8f3cf2 in clang::Parser::ParseCompoundStatement(bool) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#21 0x00002aaaac8f6b34 in clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, bool, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#22 0x00002aaaac8f76ee in clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, bool, clang::SourceLocation*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#23 0x00002aaaac8f8533 in clang::Parser::ParseForStatement(clang::SourceLocation*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#24 0x00002aaaac8f6ad1 in clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, bool, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#25 0x00002aaaac8f76ee in clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, bool, clang::SourceLocation*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#26 0x00002aaaac8f3416 in clang::Parser::ParseCompoundStatementBody(bool) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#27 0x00002aaaac8f3c9c in clang::Parser::ParseCompoundStatement(bool, unsigned int) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#28 0x00002aaaac8f3cf2 in clang::Parser::ParseCompoundStatement(bool) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#29 0x00002aaaac8f6b34 in clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, bool, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#30 0x00002aaaac8f76ee in clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, bool, clang::SourceLocation*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#31 0x00002aaaac8f8533 in clang::Parser::ParseForStatement(clang::SourceLocation*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#32 0x00002aaaac8f6ad1 in clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, bool, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#33 0x00002aaaac8f76ee in clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, bool, clang::SourceLocation*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#34 0x00002aaaac8f3416 in clang::Parser::ParseCompoundStatementBody(bool) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#35 0x00002aaaac8f3b4c in clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#36 0x00002aaaac86633b in clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) () from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoloa
#37 0x00002aaaac8877d3 in clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, unsigned int, bool, clang::SourceLocation*, clang::Parser::ForRangeInit*) () from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/lib
#38 0x00002aaaac861984 in clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) () from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../p
#39 0x00002aaaac862047 in clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) () from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoloa
#40 0x00002aaaac862abe in clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#41 0x00002aaaac86393a in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#42 0x00002aaaac8566c8 in clang::ParseAST(clang::Sema&, bool, bool) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#43 0x00002aaaac6338a9 in clang::FrontendAction::Execute() ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#44 0x00002aaaac5f49f9 in clang::ASTUnit::Parse(llvm::MemoryBuffer*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#45 0x00002aaaac5f55ca in clang::ASTUnit::Reparse(std::pair<std::string, llvm::PointerUnion<char const*, llvm::MemoryBuffer const*> >*, unsigned int) () from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang
#46 0x00002aaaac54d7c4 in clang_reparseTranslationUnit_Impl ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#47 0x00002aaaad3f389c in llvm::CrashRecoveryContext::RunSafely(void (*)(void*), void*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#48 0x00002aaaad3f38e4 in RunSafelyOnThread_Dispatch(void*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#49 0x00002aaaad418a1d in ExecuteOnThread_Dispatch(void*) ()
   from .vim/pathogen_plugins/Valloric-YouCompleteMe-4374da6/autoload/../python/libclang.so
#50 0x00000031ebe0673d in start_thread () from /lib64/libpthread.so.0
#51 0x00000031eb2d44bd in clone () from /lib64/libc.so.6
#52 0x0000000000000000 in ?? ()

@Valloric
Copy link
Member

Valloric commented Aug 7, 2013

@ixarka This issue will be addressed when #358 is implemented.

@ixarka
Copy link

ixarka commented Aug 7, 2013

Just to confirm -- #358 will fix hanging when quitting for C++ files as well (that thread seems to discuss only python issues)? The file I was editing/closing was C++. I do have jedi installed for when I edit python, but I didn't have any python files open at the time.

@Valloric
Copy link
Member

Valloric commented Aug 7, 2013

@ixarka Yes, when YCM is split into a Vim client and separate daemon process, the daemon shutdown will be independent of Vim shutdown (separate OS processes).

bijancn pushed a commit to bijancn/YouCompleteMe that referenced this issue Jul 26, 2016
…oric

[Windows support] Add backslash trigger to complete path on Windows

With this PR, paths can be completed using the `\` separator on Windows.

I also simplified and refactored the regular expression used to match a path.

Fix 5 tests (5 failures) on Windows (listed in the commit message).
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 24, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants