2014-12-08 15 views
5

Lỗi:Errno :: ETXTBSY: file văn bản bận rộn @ unlink_internal

Errno :: ETXTBSY: Văn bản tập tin bận rộn @ unlink_internal - /home/vagrant/shared/sample_app/db/test.sqlite3 /home/lang thang /shared/sample_app/test/test_helper.rb:3:in <top (required)>' /home/vagrant/shared/sample_app/test/helpers/static_pages_helper_test.rb:1:in ' nhiệm vụ: TOP => kiểm tra: chạy => kiểm tra: đơn vị (Xem toàn bộ dấu vết bằng cách chạy nhiệm vụ với --trace)

Trả lời

4

Cách giải quyết:

Lỗi liên quan đến Vagrant (hoặc VirtualBox) c thư mục được chia sẻ của ustom. Tôi không thể tìm ra cách để giải quyết nó, nhưng có một cách giải quyết khác. Thay vì làm việc với một thư mục chia sẻ tùy chỉnh mơ hồ (~/shared/sample_app), được định nghĩa trong vagrantfile Tôi đã chuyển thư mục ứng dụng sang thư mục được chia sẻ chuẩn bên trong máy chủ (/ lang thang). Bây giờ tôi vẫn nhận được đồng bộ tập tin trong máy chủ của tôi và vấn đề đã biến mất.


CẬP NHẬT 1

Đạt kết luận khác ngày hôm nay. Mọi lúc bundle exec rake db:migrate hoặc rails generate migration được thi hành lỗi sẽ trả lại.

Một Cách giải quyết
1 - Xóa các tập tin test.sqlite3.
2 - Sao chép tệp development.sqlite3
3 - Dán và đổi tên thành test.sqlite3

* - Chỉ cần di chuyển để thử nghiệm và điều này có vẻ là giải pháp lâu dài.

+1

Tôi chỉ cần đi qua này với VirtualBox (sans Vagrant), và đi đến kết luận tương tự. Tôi đã sử dụng ProcessMonitor ở phía Windows để xem liệu một số quy trình khác có đang cạnh tranh cho tệp cơ sở dữ liệu thử nghiệm trong khi nó đang được tạo hay không (như xóa thủ công tệp đầu tiên), ví dụ: trình quét vi rút/mạng hoặc lập chỉ mục, nhưng không thể tìm thấy câu trả lời. Điều gì không có ý nghĩa là nó hoạt động tốt trong hơn một tháng phát triển bình thường, và chỉ dừng làm việc vào một buổi sáng không có lý do rõ ràng (không thay đổi thói quen hoặc cấu hình của tôi mà tôi đã biết). –

+1

Tôi cũng đã tìm kiếm một nhóm mà không tìm thấy câu trả lời, vì vậy tôi tự hỏi nếu đây là một số phát triển gần đây. (Tôi đang ở phiên bản .18, chưa nâng cấp lên .20 mặc dù tôi đã có ý nghĩa, nhưng đồng thời nó không phải là bản nâng cấp đã thay đổi mọi thứ.) –

+1

Và để nhắc lại, giải pháp của tôi là di chuyển dự án được đề cập bên ngoài thư mục được chia sẻ với máy chủ Windows của tôi, đến một thư mục khác bên trong hệ điều hành khách Linux của tôi. (Và như đã đề cập, đây là với VirtualBox chỉ và không Vagrant, trong trường hợp những người khác tìm thấy câu hỏi này.) –

3

Di chuyển các tệp cơ sở dữ liệu ra ngoài phần chia sẻ mơ hồ, ví dụ:/tmp.

chỉnh sửa database.yml:

development: 
    <<: *default 
    database: /tmp/project/development.sqlite3 

test: 
    <<: *default 
    database: /tmp/project/test.sqlite3 
+0

cảm ơn, điều này đã giúp tôi trên VirtualBox quá (tôi không sử dụng vagrant), tôi chỉ cần di chuyển các tập tin db ra khỏi thư mục được chia sẻ – Ievgen

Các vấn đề liên quan