По какой-то причине, когда я связываюсь с Oracle, GSS начинает вести себя по-другому (Solaris) - PullRequest
1 голос
/ 29 июля 2011

Моя тестовая программа работает нормально.Я могу создать клиента и сервер и запускать их друг против друга.Я могу установить переменную среды KRB5_CONFIG и использовать локальную конфигурацию для тестирования.

По какой-то причине, когда я помещаю код в наше производственное программное обеспечение, происходит сбой.Даже если я обрежу нашу функцию main (), чтобы просто вызвать gss_import_name () с жестко закодированным именем, я получаю сообщение «Не удается открыть файл конфигурации».

Если я запускаю ферму, то вижу много Oracleпродолжается.Он пытается открыть много разных файлов трассировки Oracle.Он также пытается открыть

/krb5/krb.conf

вместо указанного мной файла.

Это похоже на то, как будто Oracle дает нам неправильный gss, или, возможно, какой-то другой вариант в нашей огромной и сложной системе сборки,Я отмечаю -L / usr / lib / sparcv9, хотя это после моего -lgss сейчас, если это имеет значение (слишком долго, так как я регулярно работал в C!).Файл libgss.so.1 в этом каталоге больше, чем в / usr / lib - хотя включение этой опции в команду ссылки моей тестовой программы не нарушает ее.

Любая помощь?

Спасибо - Ричард

Ответы [ 3 ]

1 голос
/ 12 декабря 2012

Это исправило то, что казалось нам похожей проблемой:

export KRB5_CONFIG=/etc/krb5.conf

Вероятно, что Oracle неправильно устанавливает этот env var, если он еще не установлен.

$ grep -r KRB5_CONFIG $ORACLE_HOME 
Binary file /usr/lib/oracle/11.1.0.1/client64/lib/libclntsh.so matches 
Binary file /usr/lib/oracle/11.1.0.1/client64/lib/libclntsh.so.11.1 matches 
$ grep -r '/krb5/krb.conf' $ORACLE_HOME 
Binary file /usr/lib/oracle/11.1.0.1/client64/lib/libclntsh.so matches 
Binary file /usr/lib/oracle/11.1.0.1/client64/lib/libclntsh.so.11.1 matches
0 голосов
/ 27 марта 2014

Я столкнулся с той же проблемой с Oracle 11.2.0.4.0 в HP-UX 11.31 и потратил на это почти целый день. Действительно, дрянная библиотека Oracle выполняет putenv с /opt/krb5/krb.conf, а подсказка Ричарда Корфилда делает приложение даже аварийным. Единственный обходной путь - создать символическую ссылку. Я создал запрос на обслуживание с Oracle для этой проблемы.

Обновление (2014-06-02): я получил обновление от Oracle. Они подтвердили ошибку. Похоже, что существует частный GSS-API, который переопределяет символы.

Bug 10184681 - ORACLE NEEDS TO USE VERSIONED SYMBOLS TO AVOID EXTERNAL SYMBOL CONFLICTS

Эта проблема была открыта с 2010-10. Грозный.

0 голосов
/ 02 августа 2011

Я обнаружил, что библиотеки Oracle содержат реализацию GSS. Чтобы заставить мой код работать, я связал «-lgss» перед тем, как связать любую из библиотек Oracle.

Я не проверял, не расстраивает ли это Oracle при единой регистрации, потому что мы используем Oracle с именем пользователя и паролем. Это отлично работает.

...