Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]3563[/thread]

symbol-lookup error beim select...



<< |< 1 2 >| >> 12 Einträge, 2 Seiten
supersucker
 2005-04-28 15:19
#33187 #33187
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
Hi,

komm mit einem (für mich) komischen fehler nicht weiter:

Ich verwende postgressql 8 unter fedora 3, die datenbank läuft ohne probleme, genau so wie DBI und PG, auch meine do-statements laufen alle, jetzt hab ich folgendes problem:

mein prepared-statement:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
my $fragQuery = $dbConnection->prepare('SELECT * FROM fragment


WHERE fragmentLength = ?


and primaryStructure1L = ?


and secondaryStructure = ?')
or die "Couldn't prepare statement: " . $dbConnection->errstr;


das schluckt der rechner auch ohne fehler, mache ich aber nun folgendes:
Code: (dl )
1
2
3
4
print "executing query...  \n";
$fragQuery->execute($fragLength, $queryPrimaryStructure, $querySecondaryStructure)
or die "Couldn't execute statement: " . $fragQuery->errstr;
print "done! \n";


erhalte ich folgenden fehler:

/usr/bin/perl: symbol lookup error: /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Pg/Pg.so: undefined symbol: PQprepare

damit kann ich überhaupt nichts anfangen, soll das heissen das mein prepare-statement schon falsch war, wenn ja, warum hab ich nicht schon vor dem execute-statement einen fehler erhalten? egal wie oft ich mir das anschau sieht für mich sowohl das prepare als auch das execute in ordnung aus soweit.......

kann mir da jemand weiterhelfen?

danke im voraus.....
renee
 2005-04-28 15:28
#33188 #33188
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
verwendest Du
Code: (dl )
$dbConnection->{pg_server_prepare} = 1;
in Deinem Skript??
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
supersucker
 2005-04-28 15:42
#33189 #33189
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
nein, das hatte ich nicht drin........

habs gerade eben hinzugefügt, kriege aber leider immer noch genau denselben fehler..........

gibt es noch andere mögliche fehlerquellen?

danke soweit
supersucker
 2005-04-28 18:15
#33190 #33190
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
hab gerade eben nach einem tip auf forum.perl.de DBD Pg 1.41 installiert, die installation verlief problemlos, abgesehen davon das jetzt gar nichts mehr geht.......

ich kann den postmaster-prozess von konsole aus noch starten, aber sobald ich versuche mit meinen scripts auf die datenbank zuzugreifen, krieg ich folgenden fehler:


Code: (dl )
/usr/bin/perl: symbol lookup error: /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Pg/Pg.so: undefined symbol: PQserverVersion


und das nicht nur bei dem aufruf vom prepare, sondern auch bei alllen anderen sachen die vorher liefen, also z.B. einfache insert die ich mit "do" gemacht habe....

und versuche ich mit webmin auf meine datenbank zuzugreifen erhalte ich den fehler:


Code: (dl )
select version() : Unknown DBI error


bin absolut rat- und ideenlos.....
was kann ich da tun?
murphy
 2005-04-28 19:33
#33191 #33191
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Die beschriebenen Fehlermeldungen deuten auf einen Fehler beim dynamischen Linken hin. Anscheinend findet das Modul PG bestimmte Funktionen in den Schnittstellenbibliotheken zu Prostgresql nicht. Besonders nach der Installation einer neuen Postgresql Version und der dazugehoerigen Bibliotheken solltest du also PG neu kompilieren und installieren.
When C++ is your hammer, every problem looks like your thumb.
supersucker
 2005-04-28 21:21
#33192 #33192
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
ok, danke für die antwort

wenn du meinst ich sollte nochmal neu installieren, dann meinst du damit schon den postgresql-server zu deinstallieren und die bereits installierten
Pg-driver drauf zu lassen oder?

oder meintest du das so:

- postgressql-server deinstallieren
- DBI-driver deinstallieren
- DBI Pg-driver deinstallieren

- postgressql-server neu installieren
- DBI-driver installieren
- DBI Pg-driver installieren

oder reicht es nur den postgressql-server neu zu installieren?
bzw. kann ich den einfach "drüberinstallieren" ohne die alte instanz zu deinstallieren?

nun noch eine frage die in einem perl-forum eigentlich nix verloren hat, aber die dürfte für die meisten wohl einfach sein (für mich nicht...):

was bedeutet bei selber kompilierten programmen od. treibern die deinstallation? bei rpm würde ich sowas wie rpm -e package machen, aber bei selbst kompilierten?
bedeutet das das ich sowas mache wie

find / -name pgsql

und dann alle gefundenen dateien lösche?

danke für die hilfe soweit....
murphy
 2005-04-29 01:52
#33193 #33193
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Da das Problem anscheinend im Pg Modul aufritt, solltest du die Postgresql Installation so belassen, wie sie ist, und nur das Pg Modul neu kompilieren und installieren. Zu diesem Zwecke musst du es nicht einmal zwingend zuerst löschen, denn die Neuinstallation wird die alte Installation überschreiben.

Für mich sieht das Problem nämlich so aus, dass das Pg Modul älter als die Postgresql Installation ist und folglich nicht mit den veränderten Bibliotheken des Postgresql Paketes klarkommt, mit denen es irgendwann einmal gelinkt wurde.

Zu deiner Frage zur Paketverwaltung: Es gibt keine generelle Regel, wie man selbstkompilierte Sachen wieder deinstalliert. Oftmals funktioniert neben dem klassischen "./configure; make; make install" auch "make uninstall" ? aber eben nicht immer. Im Notfall muss man tatsächlich alle Dateien des Paketes von Hand suchen und löschen. Aber je nachdem wohin man das Paket installiert hat, sollte das kein allzu großes Problem darstellen.
When C++ is your hammer, every problem looks like your thumb.
renee
 2005-04-29 11:06
#33194 #33194
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie pq schon bei perl.de bemerkt hat, gibt es wohl einen Bug in DBD::Pg 1.4 und Du solltest eine andere Version des Moduls installieren...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
supersucker
 2005-04-29 16:02
#33195 #33195
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
ich hab jetzt das DBD Pg-modul neu installiert (die 1.41, wie auf perl.de vorgeschlagen), das hat aber nichts gebracht...

was ich gemacht hab:

>> perl Makefile.PL

ok, lief durch

>> make

ebenso

dann aber:

>> make test
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00basic...........NOK 2# Failed test (t/00basic.t at line 11)
# Tried to use 'DBD::Pg'.
# Error: Can't load '/root/development/postgresql/perl-driver/DBD-Pg-1.41/blib/arch/auto/DBD/Pg/Pg.so' for module DBD::Pg: /root/development/postgresql/perl-driver/DBD-Pg-1.41/blib/arch/auto/DBD/Pg/Pg.so: undefined symbol: PQserverVersion at /usr/lib/perl5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 230.
# at (eval 2) line 2
# Compilation failed in require at (eval 2) line 2.
t/00basic...........ok 3/3# Looks like you failed 1 tests of 3.
t/00basic...........dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 2
Failed 1/3 tests, 66.67% okay
t/01connect.........Use of uninitialized value in concatenation (.) or string at t/01connect.t line 72.
Use of uninitialized value in concatenation (.) or string at t/01connect.t line 72.
Use of uninitialized value in concatenation (.) or string at t/01connect.t line 72.
Use of uninitialized value in concatenation (.) or string at t/01connect.t line 72.
#
# Program Version
# Perl 5.8.5 (linux)
# DBD::Pg
# PostgreSQL (compiled)
# PostgreSQL (target)
# DBI 1.47
# DBI_DSN
skipped
all skipped: Cannot run test unless DBI_DSN is defined. See the README file.
t/01constants.......Can't load '/root/development/postgresql/perl-driver/DBD-Pg-1.41/blib/arch/auto/DBD/Pg/Pg.so' for module DBD::Pg: /root/development/postgresql/perl-driver/DBD-Pg-1.41/blib/arch/auto/DBD/Pg/Pg.so: undefined symbol: PQserverVersion at /usr/lib/perl5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 230.
at t/01constants.t line 4
Compilation failed in require at t/01constants.t line 4.
BEGIN failed--compilation aborted at t/01constants.t line 4.
# Looks like your test died before it could output anything.
t/01constants.......dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-20
Failed 20/20 tests, 0.00% okay
t/01setup...........skipped
all skipped: Cannot run test unless DBI_DSN is defined. See the README file.
t/02attribs.........skipped
all skipped: Cannot run test unless DBI_DSN is defined. See the README file
t/03dbmethod........skipped
all skipped: Cannot run test unless DBI_DSN is defined. See the README file
t/03smethod.........skipped
all skipped: Cannot run test unless DBI_DSN is defined. See the README file
t/04misc............skipped
all skipped: Cannot run test unless DBI_DSN is defined. See the README file
t/05arrays..........skipped
all skipped: Cannot run test unless DBI_DSN is defined. See the README file
t/06bytea...........Can't load '/root/development/postgresql/perl-driver/DBD-Pg-1.41/blib/arch/auto/DBD/Pg/Pg.so' for module DBD::Pg: /root/development/postgresql/perl-driver/DBD-Pg-1.41/blib/arch/auto/DBD/Pg/Pg.so: undefined symbol: PQserverVersion at /usr/lib/perl5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 230.
at t/06bytea.t line 7
Compilation failed in require at t/06bytea.t line 7.
BEGIN failed--compilation aborted at t/06bytea.t line 7.
# Looks like your test died before it could output anything.
t/06bytea...........dubious
Test returned status 255 (wstat 65280, 0xff00)
t/07copy............skipped
all skipped: Cannot run test unless DBI_DSN is defined. See the README file
t/12placeholders....skipped
all skipped: Cannot run test unless DBI_DSN is defined. See the README file
t/20savepoints......skipped
all skipped: Cannot run test unless DBI_DSN is defined. See the README file
t/99_pod............skipped
all skipped: Test::Pod 0.95 required for testing POD
t/99cleanup.........skipped
all skipped: Cannot run test unless DBI_DSN is defined. See the README file
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/00basic.t 1 256 3 1 33.33% 2
t/01constants.t 255 65280 20 40 200.00% 1-20
t/06bytea.t 255 65280 ?? ?? % ??
12 tests skipped.
Failed 3/15 test scripts, 80.00% okay. 21/23 subtests failed, 8.70% okay.
make: *** [test_dynamic] Fehler 255


und

>> make install

Code: (dl )
1
2
3
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Writing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Pg/.packlist
Appending installation info to /usr/lib/perl5/5.8.5/i386-linux-thread-multi/perllocal.pod


jetzt komm ich nicht mehr weiter, wenn ich wieder meine scripte starte krieg ich genau den gleichen fehler wie vorher....

sollte ich den postgressql-server neu installieren und dann noch mal die perl-postgresql treiber?
oder auch nochmal die DBI-treiber?
oder, oder....

weiss nicht wirklich was ich machen soll..........
pq
 2005-04-30 12:34
#33196 #33196
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=supersucker,29.04.2005, 14:02]ich hab jetzt das DBD Pg-modul neu installiert (die 1.41, wie auf perl.de vorgeschlagen), das hat aber nichts gebracht...[/quote]
ich sagte ja, 1.41 oder 1.22 (halt eine frühere version, die den fehler nicht hat)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2005-04-28 15:19.