Re: DBI.pm - Memoryfault(coredump)
On Monday, October 26, 2020 11:47:54 AM EDT David Nicol wrote: > if the Oracle module is maintained by red hat, yum update should > help. If you built it in-house, you may need to yum update the perl > development environment and reinstall. This is good advice. The original poster also should make sure the Oracle C-API libraries are still installed properly on the client machine. It's impossible to really tell from what the original poster wrote what the code that is running is doing. (The code he posted is a shell script that executes the actual code, which is unknown to us.) But... It probably is DBD::Oracle running under DBI. That is the preferred, simple, and reliable way to access Oracle databases from Perl. There is no need to complicate things with an intermediate Java program. Just use the direct interface to the Oracle C-API -- DBD::Oracle. (I have used Perl DBD::Oracle for over 20 years on many different operating systems and releases with zero problems.) The error the original poster is getting is probably due to the DBD::Oracle module never being updated to the new RHEL release. Fixing it may require recompiling by hand, using CPAN. (I do not know if RHEL has an already-built DBD::Oracle module available from their repositories. I install from CPAN -- that is compile -- in Fedora.) -- Garry T. Williams
Re: [EXTERNAL] Re: DBI.pm - Memoryfault(coredump)
I think the following links should cover all the pieces needed for Perl/JDBC/Oracle https://www.oracle.com/database/technologies/appdev/jdbc.html https://metacpan.org/pod/distribution/DBD-JDBC/JDBC.pod https://sdkman.io/ Perl can launch the java server using qx: https://perlmaven.com/qx This is possibly a tangent: The last time I dug into this I couldn't figure out how to build DBD::Oracle from source using a Git source (in place of CPAN) There is very brief mention the cpanm support for git here https://metacpan.org/pod/distribution/App-cpanminus/bin/cpanm (search the page for "git" ) There is better documentation (sort of) hidden in the closed issues here - several uri formats can be used: https://metacpan.org/pod/distribution/App-cpanminus/bin/cpanm https://github.com/miyagawa/cpanminus/issues/296 https://github.com/miyagawa/cpanminus/commit/cf9a72038123a2f721508f17ec8d314cae03245a https://github.com/miyagawa/cpanminus/pull/165 https://github.com/miyagawa/cpanminus/commit/8d82465cc0dde2bd35cd7b454f06f7fba9f205f8 https://github.com/miyagawa/cpanminus/pull/230 https://github.com/miyagawa/cpanminus/commit/c588cd7f5fa3fa6c9dcc30d1f4c958c4d45680c1 I found two github repos with incidents - the second seems most active https://github.com/sergadin/dbd-oracle https://github.com/gitpan/DBD-Oracle This is also helpful: https://metacpan.org/pod/DBI#trace https://metacpan.org/pod/DBI#TRACING The information contained in this electronic mail transmission is intended only for the use of the individual or entity named in this transmission. If you are not the intended recipient of this transmission, you are hereby notified that any disclosure, copying or distribution of the contents of this transmission is strictly prohibited and that you should delete the contents of this transmission from your system immediately. Any comments or statements contained in this transmission do not necessarily reflect the views or position of Radial or its subsidiaries and/or affiliates.
Re: [EXTERNAL] Re: DBI.pm - Memoryfault(coredump)
Also consider switching to the JDBC module and using the Oracle JDBC driver. The JDBC driver requires launching a Java server which perl accesses via sockets which is available from CPAN but is not simply a drop in replacement for other DBI / DBD modules. I had to downgrade both perl and Oracle PM in order to get some legacy perl / Oracle working. The "Correct fix" requires rebuilding the Perl/Oracle module from source, an Oracle license, Oracle C Libraries and dot-h files and "sample" makefiles, and lots of time and patience and skill debugging buffer overflows in C (using something like electric fence) and extensive knowledge of Perl internals and Oracle C libraries. The Perl/Oracle module was not being actively maintained the last time I checked. I was not able to invest the time needed. There is a fork of the perl/oracle module (or more than one) on GitHub / GitLab which can be build using cpanm (not cpan) which supports git. I forget the details beyond that. The information contained in this electronic mail transmission is intended only for the use of the individual or entity named in this transmission. If you are not the intended recipient of this transmission, you are hereby notified that any disclosure, copying or distribution of the contents of this transmission is strictly prohibited and that you should delete the contents of this transmission from your system immediately. Any comments or statements contained in this transmission do not necessarily reflect the views or position of Radial or its subsidiaries and/or affiliates.
Re: DBI.pm - Memoryfault(coredump)
if the Oracle module is maintained by red hat, yum update should help. If you built it in-house, you may need to yum update the perl development environment and reinstall. On Fri, Oct 23, 2020 at 11:27 PM Srikantha wrote: > Hello, > We are having the below issue from one of the perl modules. We are trying > to get Oracle query results via this perl package and that package is using > DBI.pm. > The perl script is executing end-end but at the end there is a > segmentation fault error. We have recently upgraded our RHEL version and so > perl got updated to v5.16.3 from v5.10.1. Below code was working fine > with the older version. Your help if any will be greatly appreciated. > if I comment the code lines which is trying to get Oracle query results, > then there is no Memory fault error. So I am pointing out issue to DBI.pm. > And DBI version is 1.643. > > *Code snippet:* > > ${CODE_MOUNT_BASE}/scripts/audits/run_audit_dm_${TABLE}_${DATAMART}.pl > > exit_status=$? > > echo "exit status after pl call: ${exit_status}" > > > > *Log message*: > > /u01/Projects/audits/scripts/run_audit_dm.ksh: line 12: 2613: Memory > fault(coredump) > > exit status after pl call: 267 > > > *Regards* > *Srikantha* > *Mb-9980073640* > -- "You can be in my dream if I can be in yours." -- Bob Dylan