Tôi có các tác dụng phụ lạ khi thay đổi LD_LIBRARY_PATH
.Tác dụng phụ LD_LIBRARY_PATH
Khi tôi thêm đường dẫn chứa thư viện, ví dụ: :
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my_path/lib
Sau đó, mọi thứ trở nên chậm quá khó tin. Ví dụ: đơn giản ls
có thể dài 10 giây.
ldd
đầu ra là giống hệt nhau trước và sau khi thay đổi LD_LIBRARY_PATH
và tôi đã cố gắng để gỡ lỗi thực hiện chậm ls
với strace
: Tôi nhận được cùng thực hiện chính xác trong cả hai trường hợp. Việc thực hiện thậm chí không bị kẹt trong khi thực hiện ls
(kể từ strace
không xuất hiện bất cứ điều gì trong thời gian trễ 10 giây và sau đó đột nhiên thực hiện hoàn toàn ls
). Vì vậy, tôi nghĩ rằng nó có thể đến từ vỏ của tôi, nhưng điều này là như nhau, chạy strace
trên bash của tôi và thực hiện ls
trong cả hai trường hợp cho tôi cùng một đầu ra strace
: shell thực thi ls
và chờ đến khi kết thúc thực hiện (strace
cuối cùng đầu ra trước độ trễ strace
là waitpid(...)
). Vì vậy, tôi đoán một cái gì đó sai xảy ra giữa sự ra mắt của ls
và thực hiện của nó, như thể nó là một vấn đề cấp hạt nhân. Nó thực sự hoạt động như thể một sleep
được tạo ra trên ls
(0 cách sử dụng CPU).
Trong lag, CPU của tôi và hoạt động mạng là hoàn toàn bình thường ...
Lưu ý rằng các thư viện trong đường dẫn LD mới không xung đột với bất kỳ "thư viện tiêu chuẩn", vì vậy nó không làm phiền ls
trong tôi thí dụ.
Vì vậy, tôi rất thú vị trong các giải thích sâu hơn về các hiệu ứng phụ LD_LIBRARY_PATH
hoặc cách gỡ lỗi sâu ví dụ của tôi.
Câu hỏi hay. Tôi đã sử dụng 'LD_LIBRARY_PATH' và chưa bao giờ thấy hành vi như vậy, nhưng quan sát của bạn dường như bị cô lập và rõ ràng. Hấp dẫn. – thb
'xuất LD_DEBUG = tất cả' và' người đàn ông 8 ld.so' –
rõ ràng là hiển nhiên nhưng "ldd $ (mà ls)" có thể đưa ra manh mối nếu ls sử dụng bất kỳ thứ gì từ LD_LIBRARY_PATH. – Matthias