[sqlite] Fw: could be memory leak
Adding the right alias... I have following C program It takes the DB path as argument For testing, I have placed the DB on a dir over the NFS Now after the open call, I unshare the NFS from the NFS server to generate I/O errors Once the exec starts receiving errors, it is leaking memory.. after 6 hours, its leaking upto 1G I'm using version 3.3.9 and I see the same with version 3.6.23 Any help will be appreciated! thanks, -vikrant ---prstat for vmem--- PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 8548 root 15M 10M cpu0 0 0 0:00:44 33% vmem/1 Total: 1 processes, 1 lwps, load averages: 0.59, 0.59, 0.40 PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 8548 root 15M 10M cpu1 0 0 0:00:47 34% vmem/1 Total: 1 processes, 1 lwps, load averages: 0.60, 0.60, 0.40 PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 8548 root 1130M 1123M cpu0 0 0 2:53:12 50% vmem/1 Total: 1 processes, 1 lwps, load averages: 1.06, 1.05, 1.05 PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 8548 root 1130M 1123M cpu0 0 0 2:53:17 50% vmem/1 Total: 1 processes, 1 lwps, load averages: 1.05, 1.05, 1.05 -vmem.c-- #include #include #include #include #include #include #include cbproc(void *iotemp, int argc, char **argv, char **colname) { return 0; } int main(int argc, char* argv[]) { char dbpath[1024]; void* hdb; int i,j,k; char sqlcmd[1024]; char *errmsg = (char *) NULL; int ret; sprintf(sqlcmd, "select * from iotemp "); strcpy(dbpath, argv[1]); for(i=0;i<1;i++) { ret = sqlite3_open(dbpath, (sqlite3 **) &hdb); fprintf(stdout, "sqlite3_exec: return value = (%d)\n", ret); if(ret) { fprintf(stderr, "sqlite3_open Error errno=(%d)", errno ); } fprintf(stdout, "Sleeping for 50 sec\n"); sleep(50); fprintf(stdout, "Sleeping DONE for 50 sec\n"); while(1) { ret = sqlite3_exec((sqlite3 *) hdb, sqlcmd, cbproc, NULL, &errmsg ); fprintf(stdout, "sqlite3_exec: return value = (%d)\n", ret); if(ret) { fprintf(stderr, "sqlite3_exec Error errno=(%d) (%s)", errno, errmsg); } else { fprintf(stdout, "sqlite3_exec OK \n"); } } } return 0; } ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] could be memory leak
Sent the earlier email half way.. I'm using version 3.3.9 and I see the same with version 3.6.23 Any help will be appreciated! thanks, -vikrant ---prstat for vmem--- PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 8548 root 15M 10M cpu0 0 0 0:00:44 33% vmem/1 Total: 1 processes, 1 lwps, load averages: 0.59, 0.59, 0.40 PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 8548 root 15M 10M cpu1 0 0 0:00:47 34% vmem/1 Total: 1 processes, 1 lwps, load averages: 0.60, 0.60, 0.40 PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 8548 root 1130M 1123M cpu0 0 0 2:53:12 50% vmem/1 Total: 1 processes, 1 lwps, load averages: 1.06, 1.05, 1.05 PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 8548 root 1130M 1123M cpu0 0 0 2:53:17 50% vmem/1 Total: 1 processes, 1 lwps, load averages: 1.05, 1.05, 1.05 From: VIKRANT To: sqlite-users@sqlite.org Sent: Fri, June 18, 2010 2:37:50 AM Subject: could be memory leak I have following C program It takes the DB path as argument For testing, I have placed the DB on a dir over the NFS Now after the open call, I unshare the NFS from the NFS server to generate I/O errors Once the exec starts receiving errors, it is leaking memory.. after 6 hours, its leaking upto 1G -vmem.c-- #include #include #include #include #include #include #include cbproc(void *iotemp, int argc, char **argv, char **colname) { return 0; } int main(int argc, char* argv[]) { char dbpath[1024]; void* hdb; int i,j,k; char sqlcmd[1024]; char *errmsg = (char *) NULL; int ret; sprintf(sqlcmd, "select * from iotemp "); strcpy(dbpath, argv[1]); for(i=0;i<1;i++) { ret = sqlite3_open(dbpath, (sqlite3 **) &hdb); fprintf(stdout, "sqlite3_exec: return value = (%d)\n", ret); if(ret) { fprintf(stderr, "sqlite3_open Error errno=(%d)", errno ); } fprintf(stdout, "Sleeping for 50 sec\n"); sleep(50); fprintf(stdout, "Sleeping DONE for 50 sec\n"); while(1) { ret = sqlite3_exec((sqlite3 *) hdb, sqlcmd, cbproc, NULL, &errmsg ); fprintf(stdout, "sqlite3_exec: return value = (%d)\n", ret); if(ret) { fprintf(stderr, "sqlite3_exec Error errno=(%d) (%s)", errno, errmsg); } else { fprintf(stdout, "sqlite3_exec OK \n"); } } } return 0; } ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] could be memory leak
I have following C program It takes the DB path as argument For testing, I have placed the DB on a dir over the NFS Now after the open call, I unshare the NFS from the NFS server to generate I/O errors Once the exec starts receiving errors, it is leaking memory.. after 6 hours, its leaking upto 1G -vmem.c-- #include #include #include #include #include #include #include cbproc(void *iotemp, int argc, char **argv, char **colname) { return 0; } int main(int argc, char* argv[]) { char dbpath[1024]; void* hdb; int i,j,k; char sqlcmd[1024]; char *errmsg = (char *) NULL; int ret; sprintf(sqlcmd, "select * from iotemp "); strcpy(dbpath, argv[1]); for(i=0;i<1;i++) { ret = sqlite3_open(dbpath, (sqlite3 **) &hdb); fprintf(stdout, "sqlite3_exec: return value = (%d)\n", ret); if(ret) { fprintf(stderr, "sqlite3_open Error errno=(%d)", errno ); } fprintf(stdout, "Sleeping for 50 sec\n"); sleep(50); fprintf(stdout, "Sleeping DONE for 50 sec\n"); while(1) { ret = sqlite3_exec((sqlite3 *) hdb, sqlcmd, cbproc, NULL, &errmsg ); fprintf(stdout, "sqlite3_exec: return value = (%d)\n", ret); if(ret) { fprintf(stderr, "sqlite3_exec Error errno=(%d) (%s)", errno, errmsg); } else { fprintf(stdout, "sqlite3_exec OK \n"); } } } return 0; } ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users