Re: SegFault with HibernateD

2018-01-14 Thread Venkat via Digitalmars-d-learn

On Saturday, 13 January 2018 at 06:18:43 UTC, Ali Çehreli wrote:

On 01/12/2018 06:50 PM, Venkat wrote:
> Sorry about all these posts. Wish there were an edit button.

That's ok. :) These are actually newsgroups (see NNTP 
protocol). Newsgroups don't have any edit functionality. The 
"forum" is just a web interface to newsgroups.


Ali


Oh! ok, that makes sense. TY.


Re: SegFault with HibernateD

2018-01-12 Thread Ali Çehreli via Digitalmars-d-learn

On 01/12/2018 06:50 PM, Venkat wrote:
> Sorry about all these posts. Wish there were an edit button.

That's ok. :) These are actually newsgroups (see NNTP protocol). 
Newsgroups don't have any edit functionality. The "forum" is just a web 
interface to newsgroups.


Ali



Re: SegFault with HibernateD

2018-01-12 Thread Venkat via Digitalmars-d-learn
Sorry about all these posts. Wish there were an edit button. I 
meant PreparedStatement in mysqlddbc driver, not HibernateD.


Re: SegFault with HibernateD

2018-01-12 Thread Venkat via Digitalmars-d-learn
I think there is a bug with PreparedStatement class in 
HibernateD. ddbc fails when I use a PreparedStatement. The code 
below shows that. I will create an issue with HibernateD.



int main(string[] args) {

string url = 
"mysql://localhost:3306/webmarx?user=webmarx_dev,password=webm@rx";


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

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

 PreparedStatement prepStatement = 
conn.prepareStatement("SELECT * FROM preferences_wm ORDER BY id");

 scope(exit) prepStatement.close();
 ResultSet rs = prepStatement.executeQuery();

writeln(rs.getFetchSize());
return 0;
}


Re: SegFault with HibernateD

2018-01-12 Thread Venkat via Digitalmars-d-learn

On Friday, 12 January 2018 at 08:55:13 UTC, Rene Zwanenburg wrote:
Hard to guess what the issue is, I'd attach a debugger to see 
where it crashes.


It fails at the sql() method in Command struct in 
mysql-native-1.1.4/mysql-native/source/mysql/commands.d. This is 
what gdb says when I do a disp _sql.


1: _sql = 

I'm sorry I am new to systems programming, would that mean _sql 
is null ?






Re: SegFault with HibernateD

2018-01-12 Thread Venkat via Digitalmars-d-learn

On Friday, 12 January 2018 at 12:41:34 UTC, Mike Parker wrote:


I see now. I glossed right over that execution output. On 
Windows, I don't recall ever seeing a dub exception from dub 
from a segfault. Just checked by accessing a null pointer and 
there's nothing thrown from dub. Is that a Linux thing?


 Thankyou for the reply. Yes I am running the app on Linux. I 
will report the issue.





Re: SegFault with HibernateD

2018-01-12 Thread Mike Parker via Digitalmars-d-learn

On Friday, 12 January 2018 at 08:55:13 UTC, Rene Zwanenburg wrote:


It looks to me like the program is being run through dub, and 
dub is just reporting the program's exit code.




I see now. I glossed right over that execution output. On 
Windows, I don't recall ever seeing a dub exception from dub from 
a segfault. Just checked by accessing a null pointer and there's 
nothing thrown from dub. Is that a Linux thing?


Re: SegFault with HibernateD

2018-01-12 Thread Rene Zwanenburg via Digitalmars-d-learn

On Friday, 12 January 2018 at 07:33:37 UTC, Mike Parker wrote:

On Friday, 12 January 2018 at 05:24:52 UTC, Venkat wrote:
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 is the error.



object.Exception@source/dub/generators/build.d(530): Program


It says enough to know that the exception is being thrown from 
dub and not your program. You program is never executed because 
dub throws the exception before it gets that far. You should 
report this at the dub repository: 
https://github.com/dlang/dub/issues


It looks to me like the program is being run through dub, and dub 
is just reporting the program's exit code.


Hard to guess what the issue is, I'd attach a debugger to see 
where it crashes.


Re: SegFault with HibernateD

2018-01-11 Thread Mike Parker via Digitalmars-d-learn

On Friday, 12 January 2018 at 05:24:52 UTC, Venkat wrote:
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 is the error.



object.Exception@source/dub/generators/build.d(530): Program


It says enough to know that the exception is being thrown from 
dub and not your program. You program is never executed because 
dub throws the exception before it gets that far. You should 
report this at the dub repository: 
https://github.com/dlang/dub/issues


SegFault with HibernateD

2018-01-11 Thread Venkat via Digitalmars-d-learn
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]