Frage

Der folgende Code einen Segmentation Fault in der letzten Zeile gibt

require 'rubygems'
gem 'mysql'
gem 'dbi'
require 'dbi'
require 'mysql'

dsn = "DBI:Mysql:DATABASE:www.HOST.net" # redacted
dbh = DBI.connect(dsn, "USERNAME", "PASSWORD") # redacted

sth = dbh.execute("select  * from TABLE where numeric_value is not null limit 10;") # redacted

Es ist definitiv die letzte Zeile, die das Problem verursacht -. Eine print-Anweisung in der nächsten Zeile jemals ausgeführt nicht bekommen

Weiß jemand, warum ein so einfacher Versuch fehlschlagen würde?

Ich laufe dies auf Windows, falls die einen Unterschied macht.

War es hilfreich?

Lösung

Dies könnte eine beliebige Anzahl von Dingen, von der Version von DBI, Mysql Juwel, MySQL-Version und Ruby-Version.

Leider Rubin ist kein First-Class-Objekt an Fenstern, noch sind alle Konfigurationen ausführlich darauf getestet.

Erste Debuggen auf Ihrer VM ermöglichen, dieses Problem zu reproduzieren, mit mehr Informationen darüber, wo und warum die segfault geschieht. Übergeben Sie die Option -d die VM. hoffentlich Von dort werden Sie mehr Informationen haben, wo die Lösung zu suchen.

Ich würde vorschlagen, überprüfen Sie die Patch-Ebene Ihrer VM

ruby --version

Ich würde auch das Niveau der DBI überprüfen und Mysql

  # if you are using gems
  gem list --local 

Sie können auch wechseln, wie Sie Mysql zugreifen, Active verwendet es eigenen Code ist zu MySQL zu verbinden, was ausgiebiger getestet wird. Vielleicht nicht die beste Lösung sein, aber es sollte nicht ausschließen.

Andere Tipps

Ich weiß nicht, warum Sie einen segfault in diesem Code sind immer.

Es ist möglich, dass, zum Beispiel, wenn Sie die Grenzen des Arrays überrannt, können Sie nicht wirklich segfault bis Sie versuchen, den Code auszuführen oder auf den Speicher zugreifen, die Sie überschrieben. So Sie ein System haben könnte, die für Tage läuft, bevor es Segfaults wenn es nur im Speicher schrieb der Prozess in einem Bereich besitzt es häufig den Zugang Ball hielt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top