I get a SegFault with the main method below which uses HibernateD . The second main method which uses ddbc just works fine. What is wrong with the first main method ? I have attached the error at the bottom although I don't think it says much.

This method uses HibernateD

int main() {
        // setup DB connection
        string url = MySQLDriver.generateUrl("localhost", 3306, "test");
string[string] params = MySQLDriver.setUserAndPassword("test", "test"); DataSource ds = new ConnectionPoolDataSourceImpl(new MySQLDriver(), url, params);

        // create metadata from annotations
        EntityMetaData schema = new SchemaInfoImpl!(Preferences);

        // create session factory
        Dialect dialect = new MySQLDialect();
SessionFactory factory = new SessionFactoryImpl(schema, dialect, ds);
        scope(exit) factory.close();
        
        auto conn = ds.getConnection();
        scope(exit) conn.close();
        
        // create session
        Session sess = factory.openSession();
        scope(exit) sess.close();

        Query q = sess.createQuery("select p from Preferences p");
        Preferences[] list = q.list!Preferences();

        return 0;
}

The method below uses ddbc.

int main(string[] args) {

string url = "mysql://localhost:3306/test?user=test,password=test";

    // creating Connection
    auto conn = createConnection(url);
    scope(exit) conn.close();

    // creating Statement
    auto stmt = conn.createStatement();
    scope(exit) stmt.close();

    // reading DB
auto rs = stmt.executeQuery("SELECT * FROM preferences_wm ORDER BY id");
    writeln(rs.getFetchSize());
    return 0;
}


This is the error.

Running ./bin/hibernated-test
Program exited with code -11
Full exception: object.Exception@source/dub/generators/build.d(530): Program exited with code -11
----------------
/home/vagrant/old-dmd/dmd2/linux/bin64/../../src/phobos/std/exception.d:420 
pure @safe void std.exception.bailOut!(Exception).bailOut(immutable(char)[], 
ulong, const(char[])) [0x8d036c]
/home/vagrant/old-dmd/dmd2/linux/bin64/../../src/phobos/std/exception.d:388 
pure @safe bool std.exception.enforce!(Exception, bool).enforce(bool, lazy 
const(char)[], immutable(char)[], ulong) [0x8defcd]
source/dub/generators/build.d:530 void dub.generators.build.BuildGenerator.runTarget(dub.internal.vibecompat.inet.path.Path, const(dub.compilers.buildsettings.BuildSettings), immutable(char)[][], dub.generators.generator.GeneratorSettings) [0x97b1c9] source/dub/generators/build.d:110 void dub.generators.build.BuildGenerator.performPostGenerateActions(dub.generators.generator.GeneratorSettings, const(dub.generators.generator.ProjectGenerator.TargetInfo[immutable(char)[]])) [0x977541] source/dub/generators/generator.d:118 void dub.generators.generator.ProjectGenerator.generate(dub.generators.generator.GeneratorSettings) [0x9805a0] source/dub/dub.d:494 void dub.dub.Dub.generateProject(immutable(char)[], dub.generators.generator.GeneratorSettings) [0x8918e0] source/dub/commandline.d:789 int dub.commandline.GenerateCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) [0x857579] source/dub/commandline.d:821 int dub.commandline.BuildCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) [0x857913] source/dub/commandline.d:849 int dub.commandline.RunCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) [0x857b23] source/dub/commandline.d:239 int dub.commandline.runDubCommandLine(immutable(char)[][]) [0x853647]
source/app.d:14 _Dmain [0x84fc27]

Reply via email to