2012-03-28 32 views
24

Tôi mới tham gia git. Tôi muốn đẩy một lượng lớn cam kết đến một máy chủ từ xa nhưng vấn đề là khi tôi sử dụnggit push fatal: không thể tạo chủ đề: Tài nguyên tạm thời không khả dụng

git push origin master 

nó trả lại lỗi

Counting objects: 5009, done. 
Delta compression using up to 16 threads. 
fatal: unable to create thread: Resource temporarily unavailable 
error: pack-objects died with strange error 

Vậy là có anyway tôi có thể thiết lập các chủ đề max sử dụng cho nén Delta.

Nhờ sự giúp đỡ,

Yuan Chen

+0

lệnh bạn có thể chạy để hạn chế dung lượng bộ nhớ mà bao bì có thể mất bằng cách đăng nhập vào hệ thống từ xa 'git config --global pack.windowMemory "100m" ' ' git config --global pack.packSizeLimit" 100m "' 'git config --global pack.threads" 1 "' – Adnan

Trả lời

2

"unable to create thread: Resource temporarily unavailable" có nghĩa là một vấn đề với máy chủ từ xa (như không có thêm bộ nhớ có sẵn).

Về đồng bằng, bạn có sau đây config để tinh chỉnh:

pack.deltaCacheSize 

The maximum memory in bytes used for caching deltas in git-pack-objects(1) before writing them out to a pack.
This cache is used to speed up the writing object phase by not having to recompute the final delta result once the best match for all objects is found.
Repacking large repositories on machines which are tight with memory might be badly impacted by this though, especially if this cache pushes the system into swapping.
A value of 0 means no limit.
The smallest size of 1 byte may be used to virtually disable this cache. Defaults to 256 MiB.

pack.deltaCacheLimit 

The maximum size of a delta, that is cached in git-pack-objects(1).
This cache is used to speed up the writing object phase by not having to recompute the final delta result once the best match for all objects is found. Defaults to 1000.

Câu hỏi SO "Git pull fails with bad pack header error" tài liệu tham khảo khác pack configs -related.

2

Tôi cũng đã tình cờ gặp lỗi này. Để làm cho nó đơn giản hơn, lỗi này xảy ra bởi vì bạn muốn sao chép một tập tin 100mb vào một hdd với không gian trống 50mb (hoặc ít hơn). Để sửa lỗi này, SSH vào máy chủ và chạy các lệnh sau:

git config --global pack.windowMemory "100m" 
git config --global pack.packSizeLimit "100m" 
+2

Nó phải là 'pack.packSizeLimit' không phải' pack.SizeLimit'. – yig

75

Lỗi: "chết người: không thể tạo chủ đề: Resource tạm thời không có" mạnh mẽ cho thấy bạn đã chạy ra khỏi bộ nhớ trên máy chủ, mà có thể xảy ra nếu bạn có một kho lưu trữ với nhiều tệp lớn, có thể gây đóng gói lại để chiếm nhiều bộ nhớ hoặc bộ nhớ ảo bị giới hạn - nói chung hoặc chỉ cho tài khoản đó do cài đặt ulimit.

Anyways, đây là các lệnh bạn có thể chạy để hạn chế dung lượng bộ nhớ mà bao bì có thể mất bằng cách đăng nhập vào hệ thống từ xa (tùy theo từng người dùng git chạy như) và gõ các lệnh:

git config --global pack.windowMemory "100m" 
git config --global pack.packSizeLimit "100m" 
git config --global pack.threads "1" 

Hope những công việc này.

+15

Rất nhiều chủ đề giới hạn giải pháp lưu trữ được chia sẻ cụ thể. Thông thường, việc này giảm xuống <10 chỉ bằng lệnh cuối cùng trong câu trả lời này giải quyết được vấn đề. – Qix

+1

Tôi đã gặp sự cố này trên máy chủ chia sẻ của mình đang cố gắng chuyển 'git push' sang điều khiển từ xa. Đặt 'pack.threads" 10 "' đã sửa nó cho tôi. Tôi đã có một vấn đề tương tự khi cố gắng chạy 'git gc' khi nó đến giai đoạn đóng gói lại. Sửa lỗi tương tự. Chúc mừng. –

+1

Nếu máy chủ của bạn sử dụng giao thức http thông minh, bạn có thể không đặt được cấu hình chung cho quy trình. Thay vào đó, 'cd' vào thư mục của kho git và chạy các lệnh giống nhau mà không có' --global'. – yig

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