Побочные эффекты LD_LIBRARY_PATH

У меня странные побочные эффекты при изменении LD_LIBRARY_PATH.

Когда я добавляю путь, содержащий библиотеку, например. :

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my_path/lib

Затем все становится невероятно медленным. Например, простой lsможет длиться 10 секунд.

lddвывод точно такой же до и после изменения LD_LIBRARY_PATH, и я попытался отладить выполнение медленного lsс помощью strace: Я получаю точно такое же исполнение в обоих случаях. Выполнение даже не зависает во время выполнения ls(поскольку straceничего не выводит во время 10-секундной задержки, а потом вдруг отлично выполняет ls) . Поэтому я подумал, что это может исходить из моей оболочки, но это одно и то же: запуск straceна моем bash и выполнение lsв обоих случаях дает мне один и тот же strace. вывод: оболочка выполняет lsи ждет окончания своего выполнения (последний вывод straceперед отставанием straceравен waitpid(... )). Поэтому я предполагаю, что между запуском lsи его выполнением происходит что-то неправильное, как если бы это была проблема на уровне ядра. Это действительно действует так, как если бы сонбыл сделан на ls(0 использование процессора).

Во время задержки мой процессор и сетевая активность совершенно нормальны...

Обратите внимание, что библиотека в новом пути LD не конфликтует ни с какой "стандартной библиотекой", поэтому она не мешает lsв моем примере.

Поэтому меня интересуют более подробные объяснения побочных эффектов LD_LIBRARY_PATHили способы глубокой отладки моего примера.

7
задан Julio Guerra 5 June 2012 в 15:06
поделиться