2011-12-13 30 views
8

Tôi hy vọng ai đó nhìn thấy điều này -chạy subprocess.Popen dưới apache + mod_wsgi luôn luôn trở về một lỗi với một returncode của -6

Tôi đang chạy django-compressor, tận dụng lợi thế của thiết lập lessc để hiển thị/nén ít hơn vào CSS trên tệp. Nó hoạt động hoàn hảo khi được gọi từ máy chủ phát triển, nhưng khi chạy bên dưới apache + mod_wsgi nó luôn trả về lỗi. Để gỡ lỗi này, tôi đã chạy lệnh chính xác mà bộ lọc gọi là người dùng www-data (được định nghĩa là người dùng wsgi trong chỉ thị WSGIDaemonProcess) và đã xác minh rằng nó hoạt động chính xác, bao gồm các quyền để đọc và viết các tập tin mà nó thao tác.

Tôi cũng đã hack trên mã django-compressor trong máy nén/bộ lọc/base.py trên hệ thống đó, và có vẻ như BẤT CỨ lệnh cố gắng để được gọi là nhận được mã trả về -6 sau proc.communicate() yêu cầu.

Tôi hy vọng ai đó đã nhìn thấy điều này trước đây - hoặc nó rung chuông. Nó hoạt động tốt trên máy này bên ngoài quá trình apache + mod_wsgi (ví dụ: chạy quá trình với tư cách máy chủ dev). Tôi chỉ không rõ ràng về những gì có thể ngăn chặn các lời gọi subprocess.Popen().

+0

Máy có đang chạy SELinux không? Nếu, sau đó xem nếu nó hoạt động sau khi tạm thời vô hiệu hóa nó. –

+0

Tôi có cùng một vấn đề với Python 2.7.2 trên SELinux. Python 2.5 hoạt động tốt ở đây. Bạn có thể giải quyết vấn đề không? – Pankrat

Trả lời

8

Bạn có sử dụng Python 2.7.2 một cách tình cờ không?

Đó là phiên bản của Python giới thiệu một lỗi gây fork() trong dịch viên phụ thất bại:

http://bugs.python.org/issue13156

Bạn sẽ phải buộc ứng dụng WSGI để chạy trong thông dịch Python chính của quá trình này bằng cách thiết lập:

WSGIApplicationGroup %{GLOBAL} 

Nếu chạy nhiều ứng dụng Django, bạn cần đảm bảo rằng chỉ những người bị ảnh hưởng có chỉ thị cấu hình này được áp dụng cho ứng dụng Django khác để chạy trong một trình thông dịch h là không thể do cách cấu hình Django hoạt động.

+0

Chỉ cần biên dịch lại Python 2.7.2 và mod_wsgi với bản vá lỗi issue13156 được áp dụng và nó đã khắc phục được sự cố. Rất cám ơn, Graham! – Pankrat

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