00:00.00 Opened logfile log/20130126. 00:00.00 something tells me that this has to do with reference counting... 00:00.12 Robin_Watts: buffer_fid. 00:00.37 buffer_fid = the field ID of the fileBuffer member within the class. 00:00.49 you state in MuPDFCore that you can NOT do fileBuffer = buffer; because the member will just be NULL in the JNI-function. 00:02.21 Once we have the field id, we can then use that to access the real value of the member. 00:02.27 Robin_Watts: I added another member-variable named fileBuffer2. and in the MuPDFCore constructor I do fileBuffer2 = buffer; 00:02.45 either we can set it (with SetObjectField), or we can get it, with GetObjectField. 00:02.47 then at each place you access buffer_fid, I access buffer_fid2 (which points to fileBuffer2). 00:02.57 Robin_Watts: I know. 00:03.00 ok. 00:03.08 So, what exactly are you seeing go to NULL? 00:03.21 buffer ? or buffer_fid ? 00:03.34 or the value of fileBuffer ? 00:03.49 the reference in fileBuffer. 00:03.54 so the latter. 00:04.36 however I think I can correlate this going to NULL with the inner fz_try() in Java_com_artifex_mupdf_MuPDFCore_openBuffer() going out of scope. 00:04.57 btw, JNI_FN() is not defined in all android NDKs... 00:05.14 JNI_FN is not an android thing. 00:05.20 JNI_FN is a robin thing :) 00:05.34 see line 19. 00:05.35 oh. I got a compilation error anyway. 00:05.48 #define LOG_TAG "libmupdf" // is line 19... 00:06.08 2 lines before that ? 00:06.27 nope: 00:06.30 #include "fitz.h" 00:06.33 #include "fitz-internal.h" 00:06.36 #include "mupdf.h" 00:06.39 #define LOG_TAG "libmupdf" 00:06.42 #define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__) 00:06.45 #define LOGT(...) __android_log_print(ANDROID_LOG_INFO,"alert",__VA_ARGS__) 00:06.48 #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__) 00:06.54 #include "mupdf.h" 00:06.56 #define JNI_FN(A) Java_com_artifex_mupdfdemo_ ## A 00:06.58 #define PACKAGENAME "com/artifex/mupdfdemo" 00:07.00 #define LOG_TAG "libmupdf" 00:07.33 You may have a screwed up version of the source. 00:07.45 oh... 00:07.55 --- Saved uptime records. 00:08.17 I just cherry-picked the nulpinter and content:// commits... and JNI_FN appears somewhere else. 00:08.30 ok, anyway. :) 00:08.45 ah, ok. 00:08.46 as I said the value of fileBuffer suddenly becomes NULL. 00:08.53 this is the reason for the SIGSEGV. 00:09.17 are you watching this in adb logcat ? 00:09.25 does that mention gc runs? 00:09.43 because in bufferStreamSeek() you use array when computing arrayLength without verifying that array != NULL... 00:10.02 by checking this I can avoid the crash, but it still fails to parse the file (no data to parse!)... 00:10.09 Right, because we should never get into here without array being non NULL. 00:10.17 yes, adb logcat. let me check for GC... 00:10.24 How the hell is it losing the reference. 00:11.00 D/dalvikvm(17226): GC_EXTERNAL_ALLOC freed 9K, 10% free 24230K/26887K, external 0K/0K, paused 28ms 00:11.04 that's the only line. 00:11.16 ok, so there is a gc running. 00:11.22 let's try a hack in the java. 00:11.22 Seen: Flushed 2 entries. 00:11.25 however _after_ this line is executed then the pointer is == NULL. 00:11.31 in MuPDFCore.java... 00:11.48 before public MuPDFCore(byte buffer[]) throws Exception 00:11.51 add 00:12.29 public void stupidJavaHack(byte buffer[]) { fileBuffer = buffer; } 00:12.54 Then before: globals = openBuffer(buffer); do: stupidJavaHack(buffer); 00:13.14 Chans: (ghostbot) in:#ghostscript 00:13.57 * sebras/#ghostscript compiles 00:14.09 * sebras/#ghostscript compiles slowly... 00:14.16 * sebras/#ghostscript tests... 00:15.00 fileBuffer remains valid after the GC in this case. 00:15.30 eventually it crashes due to "ReferenceTable overflow (max=512)" 00:16.00 OK. In mupdf.c comment out the SetObjectValue line. 00:16.28 SetObjectField..? 00:16.28 SetObjectField, sorry. 00:16.41 do you want me to replace this with something? 00:16.59 w8... 00:17.26 no, just comment it out and recompile. 00:17.36 The stupidJavaHack does what it was doing. 00:18.10 some of my own debug-stuff might still have been present. I'm retesting. 00:19.03 Robin_Watts: crashes anyway. now I'm testing without SetObjectField... 00:20.51 Robin_Watts: without SetObjectField it fails on the first bufferStreamRead().... 00:21.11 Gah. 00:21.37 so it does look like reference counting is being screwed up. 00:21.47 yup. 00:21.54 It's as if when I assign from C it doesn't realise that a reference has been taken. 00:22.02 exactly. 00:22.20 did you get what I was trying to explain about fileBuffer2 before? 00:24.39 That if you made a second copy, it lasted longer? 00:25.50 I suspect we should go back to my original code and call NewGlobalRef. 00:27.23 no, it didn't last _longer_, fileBuffer2 was NULL whenever I accessed it via GetObjectField() up until the time when your pointer became NULL! 00:27.48 oh, and it became non NULL. 00:27.50 after this time, then fileBuffer2 returned non-NULL from GetObjectField() while fileBuffer returned NULL... 00:28.00 There is something hellawierd going on. 00:28.02 exactly. the non-NULL values were not the same though... 00:28.19 there is definitely something concerning reference counting which is not obivous. :) 00:29.10 Chans: (ghostbot) in:#ghostscript 00:29.24 FORK(17905) --- fork starting for 'RSSFeeds', PID == 17905, bot_pid == 6683 --- 00:29.25 FORK(17905) !ERROR! cannot load my module: RSSFeeds 00:29.25 FORK(17905) fork: took 2s for RSSFeeds. 00:29.25 FORK(17905) --- fork finished for 'RSSFeeds' --- 00:33.53 Robin_Watts: I have a question... 00:34.02 I *suspect*, but I cannot find information to be sure, that the params that come in to JNI functions are local references. 00:34.22 and once the gc runs, any local references may disappear if they aren't being used again later in the function. 00:34.34 while we're in android/jni/mupdf.c::openBuffer(), how cane the GC be running? or rather what triggers the GC in this situation? 00:34.34 so possibly we should take a new global reference before assigning it. 00:34.48 how does the GC _know_ whether the objects have gone out of scope or not? 00:34.52 GC can run during JNI calls, the docs are clear on that. 00:35.13 they are local refs: http://developer.android.com/training/articles/perf-jni.html#local_and_global_references 00:36.19 I attempted to call NewGlobalRef() but couldn't get it to work. I might have messed it up. 00:36.23 The alerts_init() call calls some pthreads_stuff. 00:36.44 how goes the gc know? hell if I know. 00:36.47 ah.. so it does. 00:37.14 I guess the GC knows depending on whether one has called NewGlocalRef() or not and where in the java code one is currently executing. 00:37.21 did you read the link? 00:37.36 I am reading it. 00:37.47 good. 00:38.43 I can forsee that we might want to care about the threading eventually, but right now this should not be a problem right? because there's only a single thread being active AFAIK. 00:39.14 nooo. several threads. 00:39.33 The UI is all on one thread. rendering all on another. 00:39.49 and alert stuff on another. 00:40.06 (the alerts have to call back into the java - it's a nightmare) 00:40.26 and the alerts were added for forms, no..? 00:40.30 yes. 00:40.44 I think I need to take a GlobalReference. 00:40.49 agreed. 00:40.54 The question is, do I then need to free it on closedown? 00:41.02 I think so. 00:41.11 so basically in bufferStreamClose I guess... 00:41.21 I don't currently have a destructor. I'll have to add one. 00:41.45 do JNI-objects have destructors? 00:42.07 No. I'd add a ~MuPDFCore (a java destructor). 00:42.28 and have that call a native 'die' method that could remove the reference and set it to NULL. 00:42.59 That way the only access to that member is from the JNI. 00:43.11 Hopefully that should minimise the risk of things getting confused. 00:43.24 What a pain. 00:43.41 pardon my ignorance, but does Java objects have destructors? 00:44.06 I left java around 1.4, so it might have been added, but up until then I never saw one... 00:44.26 Oh God, am I horribly confused? 00:45.05 Yeah, I'm thinking of C++ :( 00:45.32 Robin_Watts: though there is an inherited finalize() method. 00:45.40 >>> join/#ghostscript adamben (~Adam@binpress/adamben) 00:45.40 Chans: (ghostbot) in:#ghostscript 00:45.47 apparently this is where classes are supposed to do the tidying. 00:45.48 Which is inherited at the discretion of the garbage collector 00:45.58 s/inherited/implemented/ 00:46.07 called really. 00:46.23 I'll have a look tomorrow and see if I can come up with something. 00:46.37 Thank you for your help on this - it is much appreciated! 00:46.41 (as always) 00:46.58 sure. MuPDF is my baby too! :) 00:47.18 though not formally, but enough for me to be annoyed when it is misbehaving. 00:47.58 btw, I managed to run ndk-stack which was really useful. 00:48.05 didn't get ndk-gdb working though... 00:48.34 I've never managed to get anything useful out of either of them. 00:49.09 I must go to bed. Helen is unwell. 00:49.16 Talk to you tomorrow. 00:49.56 Robin_Watts: I cut and pasted the SIGSEGV part of logcat to a file and ran ndk-stack -sym obj/local/armeabi -dump crash.txt which pointed to the array variable in bufferStreamSeek being the culprit. 00:50.09 oh, of course. see you! 00:58.31 !WARN! PERL: readdir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 862. 00:58.31 !WARN! PERL: closedir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 869. 01:00.18 FORK(16244) --- fork starting for 'RSSFeeds', PID == 16244, bot_pid == 6683 --- 01:00.19 FORK(16244) !ERROR! cannot load my module: RSSFeeds 01:00.19 FORK(16244) fork: took 2s for RSSFeeds. 01:00.19 FORK(16244) --- fork finished for 'RSSFeeds' --- 01:01.23 Chans: (ghostbot) in:#ghostscript 01:08.01 --- Saved uptime records. 01:11.33 Seen: Flushed 2 entries. 01:17.15 Chans: (ghostbot) in:#ghostscript 01:30.48 FORK(17286) --- fork starting for 'RSSFeeds', PID == 17286, bot_pid == 6683 --- 01:30.49 FORK(17286) !ERROR! cannot load my module: RSSFeeds 01:30.49 FORK(17286) fork: took 2s for RSSFeeds. 01:30.49 FORK(17286) --- fork finished for 'RSSFeeds' --- 01:34.22 LOG: last message repeated 3 times 01:34.22 >>> join/#ghostscript mvrhel_laptop_ (~chatzilla@c-174-61-155-196.hsd1.wa.comcast.net) 01:36.18 >>> mvrhel_laptop has signed off IRC (Ping timeout: 240 seconds) [#ghostscript] 01:36.32 >>> mvrhel_laptop_ materializes into mvrhel_laptop 01:48.15 Chans: (ghostbot) in:#ghostscript 01:53.33 ircCheck: possible lost in space; checking.Sat Jan 26 01:53:33 2013 01:53.33 >ghostbot< TEST 01:53.33 IRCTEST: Yes, we're alive. 02:01.23 FORK(19938) --- fork starting for 'RSSFeeds', PID == 19938, bot_pid == 6683 --- 02:01.24 FORK(19938) !ERROR! cannot load my module: RSSFeeds 02:01.24 FORK(19938) fork: took 2s for RSSFeeds. 02:01.24 FORK(19938) --- fork finished for 'RSSFeeds' --- 02:03.58 Chans: (ghostbot) in:#ghostscript 02:08.10 --- Saved uptime records. 02:20.16 Chans: (ghostbot) in:#ghostscript 02:31.33 FORK(21498) --- fork starting for 'RSSFeeds', PID == 21498, bot_pid == 6683 --- 02:31.34 FORK(21498) !ERROR! cannot load my module: RSSFeeds 02:31.34 FORK(21498) fork: took 2s for RSSFeeds. 02:31.34 FORK(21498) --- fork finished for 'RSSFeeds' --- 02:41.18 >>> mvrhel_laptop has signed off IRC (Ping timeout: 240 seconds) [#ghostscript] 02:52.52 Chans: (ghostbot) in:#ghostscript 02:55.24 >>> adamben has signed off IRC (Quit: Computer has gone to sleep.) [#ghostscript] 02:58.24 ircCheck: possible lost in space; checking.Sat Jan 26 02:58:24 2013 02:58.24 >ghostbot< TEST 02:58.25 IRCTEST: Yes, we're alive. 03:02.02 >>> henrys has signed off IRC (Ping timeout: 255 seconds) [#ghostscript] 03:02.02 FORK(30803) --- fork starting for 'RSSFeeds', PID == 30803, bot_pid == 6683 --- 03:02.03 FORK(30803) !ERROR! cannot load my module: RSSFeeds 03:02.03 FORK(30803) fork: took 1s for RSSFeeds. 03:02.03 FORK(30803) --- fork finished for 'RSSFeeds' --- 03:08.33 --- Saved uptime records. 03:08.49 Chans: (ghostbot) in:#ghostscript 03:09.33 >>> join/#ghostscript marcosw (~marcosw@c-67-164-54-215.hsd1.ca.comcast.net) 03:20.54 >>> Fandekasp has signed off IRC (Ping timeout: 276 seconds) [#ghostscript] 03:25.21 Chans: (ghostbot) in:#ghostscript 03:32.06 FORK(18369) --- fork starting for 'RSSFeeds', PID == 18369, bot_pid == 6683 --- 03:32.07 FORK(18369) !ERROR! cannot load my module: RSSFeeds 03:32.07 FORK(18369) fork: took 2s for RSSFeeds. 03:32.07 FORK(18369) --- fork finished for 'RSSFeeds' --- 03:32.58 >>> join/#ghostscript tkamppeter_ (~till@p5DDBA7F9.dip.t-dialin.net) 03:34.33 >>> join/#ghostscript henrys (~henrys@c-50-134-235-109.hsd1.co.comcast.net) 03:36.51 >>> tkamppeter has signed off IRC (Ping timeout: 276 seconds) [#ghostscript] 03:40.59 Chans: (ghostbot) in:#ghostscript 03:50.41 >>> join/#ghostscript mvrhel_laptop (~chatzilla@c-174-61-155-196.hsd1.wa.comcast.net) 03:57.37 Chans: (ghostbot) in:#ghostscript 04:02.10 FORK(10538) --- fork starting for 'RSSFeeds', PID == 10538, bot_pid == 6683 --- 04:02.11 FORK(10538) !ERROR! cannot load my module: RSSFeeds 04:02.11 FORK(10538) fork: took 2s for RSSFeeds. 04:02.11 FORK(10538) --- fork finished for 'RSSFeeds' --- 04:02.59 ircCheck: possible lost in space; checking.Sat Jan 26 04:02:59 2013 04:02.59 >ghostbot< TEST 04:03.00 IRCTEST: Yes, we're alive. 04:08.36 --- Saved uptime records. 04:14.14 Chans: (ghostbot) in:#ghostscript 04:14.17 >>> mvrhel_laptop has signed off IRC (Ping timeout: 240 seconds) [#ghostscript] 04:29.56 Chans: (ghostbot) in:#ghostscript 04:32.23 FORK(24008) --- fork starting for 'RSSFeeds', PID == 24008, bot_pid == 6683 --- 04:32.24 FORK(24008) !ERROR! cannot load my module: RSSFeeds 04:32.24 FORK(24008) fork: took 2s for RSSFeeds. 04:32.24 FORK(24008) --- fork finished for 'RSSFeeds' --- 04:58.40 !WARN! PERL: readdir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 862. 04:58.40 !WARN! PERL: closedir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 869. 04:59.07 >>> join/#ghostscript Fandekasp (~Fandekasp@platinum-static25142.nirai.ne.jp) 05:01.26 Chans: (ghostbot) in:#ghostscript 05:02.43 FORK(17719) --- fork starting for 'RSSFeeds', PID == 17719, bot_pid == 6683 --- 05:02.44 FORK(17719) !ERROR! cannot load my module: RSSFeeds 05:02.44 FORK(17719) fork: took 2s for RSSFeeds. 05:02.44 FORK(17719) --- fork finished for 'RSSFeeds' --- 05:06.34 ircCheck: possible lost in space; checking.Sat Jan 26 05:06:34 2013 05:06.34 >ghostbot< TEST 05:06.34 IRCTEST: Yes, we're alive. 05:09.32 --- Saved uptime records. 05:17.46 Chans: (ghostbot) in:#ghostscript 05:20.54 >>> marcosw has signed off IRC (Quit: marcosw) [#ghostscript] 05:32.59 FORK(10566) --- fork starting for 'RSSFeeds', PID == 10566, bot_pid == 6683 --- 05:33.00 FORK(10566) !ERROR! cannot load my module: RSSFeeds 05:33.00 FORK(10566) fork: took 2s for RSSFeeds. 05:33.00 FORK(10566) --- fork finished for 'RSSFeeds' --- 05:33.58 Chans: (ghostbot) in:#ghostscript 05:54.36 LOG: last message repeated 3 times 05:54.36 >>> join/#ghostscript mvrhel_laptop (~chatzilla@c-174-61-155-196.hsd1.wa.comcast.net) 06:03.13 FORK(5094) --- fork starting for 'RSSFeeds', PID == 5094, bot_pid == 6683 --- 06:03.14 FORK(5094) !ERROR! cannot load my module: RSSFeeds 06:03.14 FORK(5094) fork: took 2s for RSSFeeds. 06:03.14 FORK(5094) --- fork finished for 'RSSFeeds' --- 06:03.17 >>> mvrhel_laptop has signed off IRC (Ping timeout: 240 seconds) [#ghostscript] 06:05.28 Chans: (ghostbot) in:#ghostscript 06:10.06 --- Saved uptime records. 06:10.36 ircCheck: possible lost in space; checking.Sat Jan 26 06:10:36 2013 06:10.36 >ghostbot< TEST 06:10.36 IRCTEST: Yes, we're alive. 06:20.43 Chans: (ghostbot) in:#ghostscript 06:34.16 FORK(5929) --- fork starting for 'RSSFeeds', PID == 5929, bot_pid == 6683 --- 06:34.17 FORK(5929) !ERROR! cannot load my module: RSSFeeds 06:34.17 FORK(5929) fork: took 2s for RSSFeeds. 06:34.17 FORK(5929) --- fork finished for 'RSSFeeds' --- 06:52.07 >>> join/#ghostscript marcosw (~marcosw@67.169.6.130) 06:52.17 Chans: (ghostbot) in:#ghostscript 07:02.21 >>> marcosw has signed off IRC (Quit: marcosw) [#ghostscript] 07:05.00 FORK(6523) --- fork starting for 'RSSFeeds', PID == 6523, bot_pid == 6683 --- 07:05.01 FORK(6523) !ERROR! cannot load my module: RSSFeeds 07:05.01 FORK(6523) fork: took 2s for RSSFeeds. 07:05.01 FORK(6523) --- fork finished for 'RSSFeeds' --- 07:08.01 Chans: (ghostbot) in:#ghostscript 07:10.17 --- Saved uptime records. 07:12.08 >>> join/#ghostscript marcosw (~marcosw@67.169.6.130) 07:13.59 ircCheck: possible lost in space; checking.Sat Jan 26 07:13:59 2013 07:13.59 >ghostbot< TEST 07:13.59 IRCTEST: Yes, we're alive. 07:24.24 Chans: (ghostbot) in:#ghostscript 07:35.31 FORK(4718) --- fork starting for 'RSSFeeds', PID == 4718, bot_pid == 6683 --- 07:35.32 FORK(4718) !ERROR! cannot load my module: RSSFeeds 07:35.32 FORK(4718) fork: took 2s for RSSFeeds. 07:35.32 FORK(4718) --- fork finished for 'RSSFeeds' --- 08:05.45 FORK(17848) LOG: last message repeated 3 times 08:05.45 FORK(17848) --- fork starting for 'RSSFeeds', PID == 17848, bot_pid == 6683 --- 08:05.46 FORK(17848) !ERROR! cannot load my module: RSSFeeds 08:05.46 FORK(17848) fork: took 2s for RSSFeeds. 08:05.46 FORK(17848) --- fork finished for 'RSSFeeds' --- 08:10.26 LOG: last message repeated 3 times 08:10.26 --- Saved uptime records. 08:11.22 Chans: (ghostbot) in:#ghostscript 08:16.34 ircCheck: possible lost in space; checking.Sat Jan 26 08:16:34 2013 08:16.34 >ghostbot< TEST 08:16.34 IRCTEST: Yes, we're alive. 08:26.43 Chans: (ghostbot) in:#ghostscript 08:36.14 FORK(17627) --- fork starting for 'RSSFeeds', PID == 17627, bot_pid == 6683 --- 08:36.15 FORK(17627) !ERROR! cannot load my module: RSSFeeds 08:36.15 FORK(17627) fork: took 2s for RSSFeeds. 08:36.15 FORK(17627) --- fork finished for 'RSSFeeds' --- 08:58.43 !WARN! PERL: readdir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 862. 08:58.43 !WARN! PERL: closedir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 869. 09:01.07 >>> join/#ghostscript kens (~Miranda@87.113.176.59) 09:02.23 >>> kens has signed off IRC (Read error: Connection reset by peer) [#ghostscript] 09:04.28 >>> aeplus has signed off IRC (Ping timeout: 256 seconds) [#ghostscript] 09:06.38 FORK(15688) --- fork starting for 'RSSFeeds', PID == 15688, bot_pid == 6683 --- 09:06.39 FORK(15688) !ERROR! cannot load my module: RSSFeeds 09:06.39 FORK(15688) fork: took 2s for RSSFeeds. 09:06.39 FORK(15688) --- fork finished for 'RSSFeeds' --- 09:10.39 --- Saved uptime records. 09:14.01 Chans: (ghostbot) in:#ghostscript 09:18.26 >>> chrisl_away has signed off IRC (Remote host closed the connection) [#ghostscript] 09:19.26 ircCheck: possible lost in space; checking.Sat Jan 26 09:19:26 2013 09:19.26 >ghostbot< TEST 09:19.27 IRCTEST: Yes, we're alive. 09:19.59 >>> join/#ghostscript kens (~Miranda@87.113.176.59) 09:29.52 Chans: (ghostbot) in:#ghostscript 09:37.17 FORK(11750) --- fork starting for 'RSSFeeds', PID == 11750, bot_pid == 6683 --- 09:37.18 FORK(11750) !ERROR! cannot load my module: RSSFeeds 09:37.18 FORK(11750) fork: took 2s for RSSFeeds. 09:37.18 FORK(11750) --- fork finished for 'RSSFeeds' --- 10:07.57 FORK(6497) LOG: last message repeated 4 times 10:07.57 FORK(6497) --- fork starting for 'RSSFeeds', PID == 6497, bot_pid == 6683 --- 10:07.58 FORK(6497) !ERROR! cannot load my module: RSSFeeds 10:07.58 FORK(6497) fork: took 2s for RSSFeeds. 10:07.58 FORK(6497) --- fork finished for 'RSSFeeds' --- 10:10.52 LOG: last message repeated 4 times 10:10.52 --- Saved uptime records. 10:18.26 Chans: (ghostbot) in:#ghostscript 10:23.38 ircCheck: possible lost in space; checking.Sat Jan 26 10:23:38 2013 10:23.38 >ghostbot< TEST 10:23.38 IRCTEST: Yes, we're alive. 10:33.56 Chans: (ghostbot) in:#ghostscript 10:38.29 FORK(304) --- fork starting for 'RSSFeeds', PID == 304, bot_pid == 6683 --- 10:38.30 FORK(304) !ERROR! cannot load my module: RSSFeeds 10:38.30 FORK(304) fork: took 2s for RSSFeeds. 10:38.30 FORK(304) --- fork finished for 'RSSFeeds' --- 11:08.59 FORK(26642) --- fork starting for 'RSSFeeds', PID == 26642, bot_pid == 6683 --- 11:09.00 FORK(26642) !ERROR! cannot load my module: RSSFeeds 11:09.00 FORK(26642) fork: took 2s for RSSFeeds. 11:09.00 FORK(26642) --- fork finished for 'RSSFeeds' --- 11:11.24 --- Saved uptime records. 11:15.08 >>> join/#ghostscript mvrhel_laptop (~chatzilla@c-174-61-155-196.hsd1.wa.comcast.net) 11:20.34 Chans: (ghostbot) in:#ghostscript 11:26.06 ircCheck: possible lost in space; checking.Sat Jan 26 11:26:06 2013 11:26.06 >ghostbot< TEST 11:26.06 IRCTEST: Yes, we're alive. 11:31.10 >>> mvrhel_laptop has signed off IRC (Ping timeout: 252 seconds) [#ghostscript] 11:36.50 Chans: (ghostbot) in:#ghostscript 11:39.07 FORK(25206) --- fork starting for 'RSSFeeds', PID == 25206, bot_pid == 6683 --- 11:39.08 FORK(25206) !ERROR! cannot load my module: RSSFeeds 11:39.08 FORK(25206) fork: took 2s for RSSFeeds. 11:39.08 FORK(25206) --- fork finished for 'RSSFeeds' --- 12:09.11 FORK(15340) LOG: last message repeated 4 times 12:09.11 FORK(15340) --- fork starting for 'RSSFeeds', PID == 15340, bot_pid == 6683 --- 12:09.12 FORK(15340) !ERROR! cannot load my module: RSSFeeds 12:09.12 FORK(15340) fork: took 2s for RSSFeeds. 12:09.12 FORK(15340) --- fork finished for 'RSSFeeds' --- 12:09.59 LOG: last message repeated 4 times 12:09.59 sebras: ping ? 12:11.46 --- Saved uptime records. 12:14.12 Seen: Flushed 1 entries. 12:15.00 >>> kens has signed off IRC (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org) [#ghostscript] 12:23.32 Chans: (ghostbot) in:#ghostscript 12:27.53 >>> join/#ghostscript adamben (~Adam@binpress/adamben) 12:39.24 Chans: (ghostbot) in:#ghostscript 12:39.25 FORK(5727) --- fork starting for 'RSSFeeds', PID == 5727, bot_pid == 6683 --- 12:39.26 FORK(5727) !ERROR! cannot load my module: RSSFeeds 12:39.26 FORK(5727) fork: took 2s for RSSFeeds. 12:39.26 FORK(5727) --- fork finished for 'RSSFeeds' --- 12:50.22 Robin_Watts: pong! 12:50.37 hi. 12:50.51 I tried another idea to fix this thing, and it's still failing. 12:51.10 I cannot understand why when I set the fileBuffer member from the java, I cannot then read it in the C. 12:51.28 no, exactly. that's what your comment is all about. 12:51.29 I've split the code so that the MuPDFCore constructor sets the member and then exits. 12:51.39 ok. 12:51.40 and then I have another method that calls the native one. 12:52.04 The method that calls the native one prints the fileBuffer, and I get a valid value out. 12:52.18 So it *is* being set. the JNI is just failing to get it. 12:52.19 * sebras/#ghostscript telephones... 12:54.52 Chans: (ghostbot) in:#ghostscript 12:55.01 >>> adamben has signed off IRC (Quit: Computer has gone to sleep.) [#ghostscript] 12:55.15 right. 12:55.51 do we have to call some function in order to "set" all the references properly? 12:56.20 I don't see how. 12:56.29 I don't think it matters if it is a global reference, right? 12:56.40 The java side sets the 'globals' member, and the C retrieves that just fine. 12:57.06 so I'm not trying to do anything fundamentally different to what I've done before. 12:59.24 !WARN! PERL: readdir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 862. 12:59.24 !WARN! PERL: closedir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 869. 13:00.24 >>> Fandekasp has signed off IRC (Ping timeout: 276 seconds) [#ghostscript] 13:01.57 so basically you do GetObjectClass(), GetFieldID() and then GetByteArrayField() or whatever it is called..? 13:03.59 except that GetObjectClass and GetFieldID() are done in openBuffer... 13:04.14 and GetObjectField() is called in bufferStreamSeek() etc. 13:08.19 yes. 13:08.23 OK, I just tried a test. 13:08.24 http://stackoverflow.com/questions/1086596/how-to-access-arrays-within-an-object-with-jni 13:08.32 I can't see what we are doing wrong... 13:09.12 yeah, I've read that one :) 13:09.17 My test is as follows: 13:09.28 FORK(28684) --- fork starting for 'RSSFeeds', PID == 28684, bot_pid == 6683 --- 13:09.29 FORK(28684) !ERROR! cannot load my module: RSSFeeds 13:09.29 FORK(28684) fork: took 2s for RSSFeeds. 13:09.29 FORK(28684) --- fork finished for 'RSSFeeds' --- 13:09.48 Have a constructor: MuPDFCore(byte buffer[]) { fileBuffer =buffer; globals = 64; } 13:10.42 Then I have a java method: void openBufferedFile() { System.out.println("globals="+globals+" fileBuffer="+fileBuffer); globals = openBuffer(); } 13:11.02 Chans: (ghostbot) in:#ghostscript 13:11.05 Then in the native method openBuffer, I retrieve globals and fileBuffer and print both of them. 13:11.47 The calling code obviously calls: core = new MuPDFCore(buffer); then core.openBufferedFile(); 13:12.11 I see the java print give globals=64 fileBuffer=[B@4055b510 13:12.11 --- Saved uptime records. 13:12.16 so that's what we expect. 13:12.26 Inside the native method however, I see 0 for both values. 13:14.26 Seen: Flushed 2 entries. 13:18.42 I have to pop out for a bit. There must be something stupidly simple I'm doing wrong here. 13:21.03 I see it, I think. 13:21.32 I'm reading the values from 'clazz' not 'thiz'. 13:22.37 OK. I think I know how to fix it. I'll tidy that all up when I get back. 13:27.32 Chans: (ghostbot) in:#ghostscript 13:37.06 >>> sh4rm4 has signed off IRC (Ping timeout: 276 seconds) [#ghostscript] 13:39.59 FORK(22255) --- fork starting for 'RSSFeeds', PID == 22255, bot_pid == 6683 --- 13:40.00 FORK(22255) !ERROR! cannot load my module: RSSFeeds 13:40.00 FORK(22255) fork: took 2s for RSSFeeds. 13:40.00 FORK(22255) --- fork finished for 'RSSFeeds' --- 13:43.30 Chans: (ghostbot) in:#ghostscript 14:03.26 >>> join/#ghostscript adamben (~Adam@binpress/adamben) 14:08.40 >>> join/#ghostscript Fandekasp (~Fandekasp@platinum-static25142.nirai.ne.jp) 14:10.39 FORK(18439) --- fork starting for 'RSSFeeds', PID == 18439, bot_pid == 6683 --- 14:10.40 FORK(18439) !ERROR! cannot load my module: RSSFeeds 14:10.40 FORK(18439) fork: took 2s for RSSFeeds. 14:10.40 FORK(18439) --- fork finished for 'RSSFeeds' --- 14:12.34 --- Saved uptime records. 14:14.50 Seen: Flushed 1 entries. 14:16.00 Chans: (ghostbot) in:#ghostscript 14:26.40 ircCheck: possible lost in space; checking.Sat Jan 26 14:26:40 2013 14:26.40 >ghostbot< TEST 14:26.41 IRCTEST: Yes, we're alive. 14:31.30 * sebras/#ghostscript is back. 14:32.20 Chans: (ghostbot) in:#ghostscript 14:32.39 Robin_Watts: oh, yes, of course. those are instance members, not class members! :) 14:32.42 d'oh. 14:41.23 FORK(14091) --- fork starting for 'RSSFeeds', PID == 14091, bot_pid == 6683 --- 14:41.24 FORK(14091) !ERROR! cannot load my module: RSSFeeds 14:41.24 FORK(14091) fork: took 2s for RSSFeeds. 14:41.24 FORK(14091) --- fork finished for 'RSSFeeds' --- 14:48.06 Chans: (ghostbot) in:#ghostscript 15:01.09 >>> join/#ghostscript sh4rm4 (~sh4rm@gateway/tor-sasl/sh4rm4) 15:04.18 Chans: (ghostbot) in:#ghostscript 15:11.43 FORK(7266) --- fork starting for 'RSSFeeds', PID == 7266, bot_pid == 6683 --- 15:11.44 FORK(7266) !ERROR! cannot load my module: RSSFeeds 15:11.44 FORK(7266) fork: took 2s for RSSFeeds. 15:11.44 FORK(7266) --- fork finished for 'RSSFeeds' --- 15:13.08 --- Saved uptime records. 15:15.44 Seen: Flushed 1 entries. 15:20.46 Chans: (ghostbot) in:#ghostscript 15:31.31 >>> join/#ghostscript mvrhel_laptop (~chatzilla@c-174-61-155-196.hsd1.wa.comcast.net) 15:36.14 Chans: (ghostbot) in:#ghostscript 15:36.14 ircCheck: possible lost in space; checking.Sat Jan 26 15:36:14 2013 15:36.14 >ghostbot< TEST 15:36.14 IRCTEST: Yes, we're alive. 15:42.18 FORK(5917) --- fork starting for 'RSSFeeds', PID == 5917, bot_pid == 6683 --- 15:42.19 FORK(5917) !ERROR! cannot load my module: RSSFeeds 15:42.19 FORK(5917) fork: took 2s for RSSFeeds. 15:42.19 FORK(5917) --- fork finished for 'RSSFeeds' --- 15:47.17 >>> mvrhel_laptop has signed off IRC (Ping timeout: 240 seconds) [#ghostscript] 15:51.47 Chans: (ghostbot) in:#ghostscript 15:53.04 * Robin_Watts/#ghostscript is back too. 15:53.07 rebuilding now to test. 15:53.12 >>> adamben has signed off IRC (Quit: Computer has gone to sleep.) [#ghostscript] 16:05.42 Robin_Watts: ok. have you managed to reproduce? 16:05.58 or do you still want me to test it? 16:07.14 I had code here to simulate it, and it seems to test out OK. 16:07.24 but I'd still like it tested for real if you wouldn't mind. 16:07.32 I should have an apk in about 10 mins. 16:07.32 Chans: (ghostbot) in:#ghostscript 16:07.50 (takes 5 mins to upload to the website) 16:08.27 >>> join/#ghostscript adamben (~Adam@binpress/adamben) 16:12.28 FORK(30325) --- fork starting for 'RSSFeeds', PID == 30325, bot_pid == 6683 --- 16:12.29 FORK(30325) !ERROR! cannot load my module: RSSFeeds 16:12.29 FORK(30325) fork: took 2s for RSSFeeds. 16:12.29 FORK(30325) --- fork finished for 'RSSFeeds' --- 16:13.08 >>> adamben has signed off IRC (Client Quit) [#ghostscript] 16:13.28 --- Saved uptime records. 16:16.03 Seen: Flushed 2 entries. 16:18.03 sebras: http://ghostscript.com/~robin/MuPDF.apk 16:19.37 nope. 16:20.12 oh ass. 16:20.15 let me uninstall all my mupdf apps just to be sure that I used the right one... 16:20.18 really? What error? 16:21.54 E/AndroidRuntime(11826): java.lang.UnsatisfiedLinkError: openBuffer 16:21.55 E/AndroidRuntime(11826): at com.artifex.mupdf.MuPDFCore.openBuffer(Native Method) 16:23.27 Chans: (ghostbot) in:#ghostscript 16:23.36 I removed all apps on my phone and reinstalled the one you sent me. probably I accidentally used my old one before, because now I get a different error... 16:24.48 Robin_Watts: http://pastebin.com/Ba8uVjn9 16:24.54 I've been caught out by the fact that if you download MuPDF.apk, and there is already a MuPDF.apk there, it renames the new one to be MuPDF-1.apk, and I've ended up reinstalling the same one several times. 16:25.45 How big is that attachment ? 16:25.49 21Mbyte... 16:25.55 Try a smaller one ? 16:25.58 I can try the smaller one too. 16:26.19 I think (hope) this may be a crash due to running out of memory. 16:26.39 nope, same crash. 16:26.54 NullPointerException in doInBackground line 152... 16:27.24 ok, that's crashing in the alert stuff. 16:27.30 my line 152 has a brace, so I'm obviously now having the latest MuPDFActivity.java... 16:27.48 gimme a mo, and I'll push it. 16:27.57 sure. 16:29.04 ok, pushed 16:30.36 Do you see "Trying to open byte buffer" in the logs ? 16:31.53 nope. 16:32.00 I'll build it myself too. 16:32.56 same result. 16:33.45 Robin_Watts: how can the core member on line 152 be NULL? 16:34.57 Oh, I was reading it as being a NULL exception from within core.waitForAlert. 16:35.12 but I think you're right - that would have been a SEGV, right? 16:35.20 So... I don't know. 16:36.07 Look at around line 326 16:36.21 if (str == null) then we aren't being given a filename. 16:36.31 so we have to try to work in a buffered manner. 16:37.27 I'm wondering if we're somehow ending up in the if (failString != null) section, and that trys to set up an alert, and the alert is failing because we don't have a core object. 16:38.17 Not being able to use alerts without a core object is a bit of an ass. 16:38.38 and something I need to sort out I guess in order to be able to neatly report errors. 16:38.47 BUT... we shouldn't be ending up there anyway. 16:38.54 at least, not with the smaller attachment. 16:39.23 So I'm guessing that a sprinkling of debugging printfs in the try/catch stuff may point to where we're going wrong? 16:39.23 Chans: (ghostbot) in:#ghostscript 16:39.55 I was unsure whether those printlns would actually make it into logcat, so I replaced them with Log.e()... 16:40.07 but I don't see them from openBuffer/openFile anyway.. 16:40.16 something ells me that we haven't visited those functions yet... 16:40.35 right. If we're going wrong in the try/catch thing, then we don't get that far. 16:41.03 I reckon we are throwing an exception in the 328->332 region. 16:41.15 of what file? MuPDFActivity? 16:41.19 Yes. 16:41.42 And that's being caught, and we're crashing in 344->357 16:41.54 I added a print on line 321, and I don't see that one either... 16:42.31 let me add one at the very start of onCreate()... 16:42.31 FORK(18798) --- fork starting for 'RSSFeeds', PID == 18798, bot_pid == 6683 --- 16:42.32 FORK(18798) !ERROR! cannot load my module: RSSFeeds 16:42.32 FORK(18798) fork: took 1s for RSSFeeds. 16:42.32 FORK(18798) --- fork finished for 'RSSFeeds' --- 16:42.57 nope... that's not printed either. 16:43.01 E/AndroidRuntime(16459): Caused by: java.lang.NullPointerException 16:43.02 E/AndroidRuntime(16459): at com.artifex.mupdfdemo.MuPDFActivity$1.doInBackground(MuPDFActivity.java:152) 16:43.26 could it be that doInBackground() is called before core is set? 16:45.49 even if I have a print at the beginnig of createAlertWaiter() I don't see it. 16:48.03 Robin_Watts: I give up. :-P I fail to see how it can end up in a NullPointException at line 152 without passing the lines before it and printing something! 16:48.54 I can't see how we're ever getting into that particular alert stuff :( 16:50.24 I'll replace that core.waitForAlert() line with return null just to see if I get more debugprints or something... 16:52.37 nothing. 16:52.52 sebras: On the phone to paulgardiner 16:52.55 actually it is worse now than yesterday evening. 16:55.37 Chans: (ghostbot) in:#ghostscript 16:59.24 >>> join/#ghostscript mvrhel_laptop (~chatzilla@c-174-61-155-196.hsd1.wa.comcast.net) 16:59.34 !WARN! PERL: readdir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 862. 16:59.34 !WARN! PERL: closedir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 869. 17:01.53 ok. 17:01.59 I think I understand what's going wrong. 17:02.07 Or at least, I might do. 17:02.20 do tell! :) 17:02.35 When onStart is called, we start up the horrible alertwaiter stuff in the background. 17:03.06 That assumes that we have a core. 17:03.21 Normally, we go into onCreate, and don't come out without having a core. 17:03.27 right. but I put a print _before_ the call to core.startAlerts() and I don't see that print either. 17:03.37 so onStart is fine. 17:03.38 could be because the printbuffer is not flushed of course, but still. 17:03.44 just don't ruin a nice idea, eh? 17:03.57 Robin_Watts: >;) 17:04.22 If we put an error dialogue on the screen, we can now exit onCreate without having created a core. 17:04.36 in what order are onCreate and onStart called? 17:04.47 hence we then run onStart and that creates the alert waiter and it all falls over. 17:05.07 onCreate -> {onStart->onStop)* -> onDestroy, I think. 17:05.19 seems reasonable. 17:05.43 So onStart should be changed so that both core.startAlerts and createAlertWaiter are in the if (core != null)/ 17:06.00 I have a Log.e("mupdf", "AAAAAA"); at the beginning of onCreate and onStart... I don't ser either in logcat. 17:06.11 and onStop should be changed so that both destroyAlertWaiter and core.stopAlerts() are in the if (core != null) 17:06.28 Let's hope that's just thready flushy problems. 17:06.43 Try changing onStart/onStop and see if anything works. 17:08.28 * sebras/#ghostscript tests 17:11.55 Chans: (ghostbot) in:#ghostscript 17:12.44 Robin_Watts: well, it doesn't crash then.. 17:12.45 FORK(12228) --- fork starting for 'RSSFeeds', PID == 12228, bot_pid == 6683 --- 17:12.46 FORK(12228) !ERROR! cannot load my module: RSSFeeds 17:12.46 FORK(12228) fork: took 2s for RSSFeeds. 17:12.46 FORK(12228) --- fork finished for 'RSSFeeds' --- 17:12.59 I can now see that it visits both onCreate and onStart in the log. 17:13.23 however I get an alertbox on screen which has nothing in it apart from a big dismiss-button. 17:13.33 --- Saved uptime records. 17:13.36 ok, that's good news. 17:13.49 if I press it MuPDF closes... 17:13.58 Line 349 17:14.06 setTitle(String.format(...)) 17:14.18 That should be alert.setTitle( 17:14.29 Then you should actually see the exception that was thrown. 17:15.33 >>> marcosw has signed off IRC (Quit: marcosw) [#ghostscript] 17:15.52 Robin_Watts: and here's the magical string v v v v v 17:15.59 Unable to open document: 17:16.31 doesn't this mean that failString is empty? 17:16.34 Oh, FFS. I am such a plonker. 17:16.44 Seen: Flushed 2 entries. 17:16.47 Line 325. 17:17.01 String failString = ""; should be String failString = null; 17:17.38 well, that explains why we get an alert box. :) 17:18.47 I see a PDF! 17:18.56 now let me try this with the 21Mbyte file... 17:19.00 For the smaller attachment? cool. 17:19.33 E/mupdf (21582): Trying to open byte buffer 17:19.33 E/libmupdf(21582): Opening document... 17:19.33 E/libmupdf(21582): error: Failed to read linearized dictionary 17:19.33 I/alert (21582): alert_init 17:19.33 E/libmupdf(21582): Done! 17:19.36 W/dalvikvm(21582): ReferenceTable overflow (max=512) 17:19.38 W/dalvikvm(21582): Last 10 entries in JNI local reference table: 17:20.06 W/dalvikvm(21582): 502: 0x40541788 cls=[B (22007140 bytes) 17:20.06 W/dalvikvm(21582): 503: 0x40541788 cls=[B (22007140 bytes) 17:20.06 W/dalvikvm(21582): 504: 0x40541788 cls=[B (22007140 bytes) 17:20.06 W/dalvikvm(21582): 505: 0x40541788 cls=[B (22007140 bytes) 17:20.20 this looks like we're leeking a bytearray-reference somewhere now...? 17:20.55 hmm. That might be in the bufferStream stuff. 17:21.00 mmm. 17:21.11 When I do a GetObjectStream, that should get me a local reference. 17:21.18 I'm not supposed to need to throw that away. 17:21.31 GetObjectField you mean..? 17:21.37 yes, sorry. 17:22.02 well, at the end of bufferStream(Read|Seek) we might be rqeuired to..? 17:22.38 http://mono-for-android.1047100.n5.nabble.com/JNI-ERROR-app-bug-local-reference-table-overflow-max-512-td5711318.html 17:22.39 there is a DeleteLocalRef function. 17:22.50 seems that's what I need, yes. Will fix now. 17:27.37 Chans: (ghostbot) in:#ghostscript 17:27.52 OK, I've pushed what I think should be the fixed version. 17:28.02 I've got to go tend to Helen for a bit though, sorry. 17:28.08 Thanks for all your help on this! 17:28.10 np. 17:38.52 Robin_Watts: congrats I have a pdf! 17:42.56 FORK(3858) --- fork starting for 'RSSFeeds', PID == 3858, bot_pid == 6683 --- 17:42.57 FORK(3858) !ERROR! cannot load my module: RSSFeeds 17:42.57 FORK(3858) fork: took 2s for RSSFeeds. 17:42.57 FORK(3858) --- fork finished for 'RSSFeeds' --- 17:43.15 Chans: (ghostbot) in:#ghostscript 17:45.19 brilliant. 17:50.00 Uploading release build to the usual place. ETA 5 mins. 17:59.33 Chans: (ghostbot) in:#ghostscript 18:13.00 FORK(27803) --- fork starting for 'RSSFeeds', PID == 27803, bot_pid == 6683 --- 18:13.01 FORK(27803) !ERROR! cannot load my module: RSSFeeds 18:13.01 FORK(27803) fork: took 2s for RSSFeeds. 18:13.01 FORK(27803) --- fork finished for 'RSSFeeds' --- 18:13.55 --- Saved uptime records. 18:16.31 Chans: (ghostbot) in:#ghostscript 18:17.11 Seen: Flushed 2 entries. 18:17.33 well... that one wasn't so fun. 18:17.47 ah... no I see what is happening. 18:17.49 nvm me. 18:20.54 Robin_Watts: if I have a prior version of the app installed and I do adb install of your MuPDF.apk I get some of the files from the old version and some from the new... 18:21.06 now it works elegantly. 18:21.17 even with the large file. 18:33.19 Chans: (ghostbot) in:#ghostscript 18:43.14 FORK(21963) --- fork starting for 'RSSFeeds', PID == 21963, bot_pid == 6683 --- 18:43.15 FORK(21963) !ERROR! cannot load my module: RSSFeeds 18:43.15 FORK(21963) fork: took 2s for RSSFeeds. 18:43.15 FORK(21963) --- fork finished for 'RSSFeeds' --- 18:53.16 >>> mvrhel_laptop has signed off IRC (Ping timeout: 240 seconds) [#ghostscript] 19:04.29 Chans: (ghostbot) in:#ghostscript 19:06.30 >>> tkamppeter_ has signed off IRC (Read error: Operation timed out) [#ghostscript] 19:06.37 >>> join/#ghostscript tkamppeter__ (~till@p5DDBB947.dip.t-dialin.net) 19:13.44 FORK(18366) --- fork starting for 'RSSFeeds', PID == 18366, bot_pid == 6683 --- 19:13.45 FORK(18366) !ERROR! cannot load my module: RSSFeeds 19:13.45 FORK(18366) fork: took 2s for RSSFeeds. 19:13.45 FORK(18366) --- fork finished for 'RSSFeeds' --- 19:14.49 --- Saved uptime records. 19:17.45 Seen: Flushed 1 entries. 19:20.01 Chans: (ghostbot) in:#ghostscript 19:21.59 sebras: Thanks. 19:28.25 >>> join/#ghostscript adamben (~Adam@binpress/adamben) 19:30.42 >>> sh4rm4 has signed off IRC (Ping timeout: 276 seconds) [#ghostscript] 19:36.29 Chans: (ghostbot) in:#ghostscript 19:36.52 >>> adamben has signed off IRC (Ping timeout: 246 seconds) [#ghostscript] 19:41.14 >>> join/#ghostscript adamben (~Adam@binpress/adamben) 19:43.48 FORK(7096) --- fork starting for 'RSSFeeds', PID == 7096, bot_pid == 6683 --- 19:43.49 FORK(7096) !ERROR! cannot load my module: RSSFeeds 19:43.49 FORK(7096) fork: took 2s for RSSFeeds. 19:43.49 FORK(7096) --- fork finished for 'RSSFeeds' --- 19:45.03 >>> join/#ghostscript mvrhel_laptop (~chatzilla@c-174-61-155-196.hsd1.wa.comcast.net) 19:49.07 >>> adamben has signed off IRC (Quit: Computer has gone to sleep.) [#ghostscript] 19:53.27 Chans: (ghostbot) in:#ghostscript 20:14.28 FORK(3722) LOG: last message repeated 3 times 20:14.28 FORK(3722) --- fork starting for 'RSSFeeds', PID == 3722, bot_pid == 6683 --- 20:14.29 FORK(3722) !ERROR! cannot load my module: RSSFeeds 20:14.29 FORK(3722) fork: took 2s for RSSFeeds. 20:14.29 FORK(3722) --- fork finished for 'RSSFeeds' --- 20:15.27 LOG: last message repeated 3 times 20:15.27 --- Saved uptime records. 20:17.59 Seen: Flushed 1 entries. 20:25.37 Chans: (ghostbot) in:#ghostscript 20:25.37 ircCheck: possible lost in space; checking.Sat Jan 26 20:25:37 2013 20:25.37 >ghostbot< TEST 20:25.38 IRCTEST: Yes, we're alive. 20:33.19 >>> join/#ghostscript sh4rm4 (~sh4rm@gateway/tor-sasl/sh4rm4) 20:40.54 Chans: (ghostbot) in:#ghostscript 20:44.47 FORK(28317) --- fork starting for 'RSSFeeds', PID == 28317, bot_pid == 6683 --- 20:44.48 FORK(28317) !ERROR! cannot load my module: RSSFeeds 20:44.48 FORK(28317) fork: took 2s for RSSFeeds. 20:44.48 FORK(28317) --- fork finished for 'RSSFeeds' --- 21:00.08 !WARN! PERL: readdir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 862. 21:00.08 !WARN! PERL: closedir() attempted on invalid dirhandle DEBIAN at ./src/IRC/Schedulers.pl line 869. 21:12.44 Chans: (ghostbot) in:#ghostscript 21:14.51 FORK(18599) --- fork starting for 'RSSFeeds', PID == 18599, bot_pid == 6683 --- 21:14.52 FORK(18599) !ERROR! cannot load my module: RSSFeeds 21:14.52 FORK(18599) fork: took 2s for RSSFeeds. 21:14.52 FORK(18599) --- fork finished for 'RSSFeeds' --- 21:15.30 --- Saved uptime records. 21:28.52 Chans: (ghostbot) in:#ghostscript 21:28.52 ircCheck: possible lost in space; checking.Sat Jan 26 21:28:52 2013 21:28.52 >ghostbot< TEST 21:28.53 IRCTEST: Yes, we're alive. 21:38.46 >>> mvrhel_laptop has signed off IRC (Ping timeout: 240 seconds) [#ghostscript] 21:45.05 FORK(10605) --- fork starting for 'RSSFeeds', PID == 10605, bot_pid == 6683 --- 21:45.06 FORK(10605) !ERROR! cannot load my module: RSSFeeds 21:45.06 FORK(10605) fork: took 2s for RSSFeeds. 21:45.06 FORK(10605) --- fork finished for 'RSSFeeds' --- 21:45.14 Chans: (ghostbot) in:#ghostscript 22:09.16 >>> join/#ghostscript marcosw (~marcosw@ip-64-134-238-183.public.wayport.net) 22:15.15 FORK(2582) --- fork starting for 'RSSFeeds', PID == 2582, bot_pid == 6683 --- 22:15.16 FORK(2582) !ERROR! cannot load my module: RSSFeeds 22:15.16 FORK(2582) fork: took 2s for RSSFeeds. 22:15.16 FORK(2582) --- fork finished for 'RSSFeeds' --- 22:15.44 --- Saved uptime records. 22:16.44 Chans: (ghostbot) in:#ghostscript 22:33.02 LOG: last message repeated 3 times 22:33.02 ircCheck: possible lost in space; checking.Sat Jan 26 22:33:02 2013 22:33.02 >ghostbot< TEST 22:33.02 IRCTEST: Yes, we're alive. 22:39.00 >>> Fandekasp has signed off IRC (Ping timeout: 256 seconds) [#ghostscript] 22:45.07 >>> join/#ghostscript adamben (~Adam@binpress/adamben) 22:45.37 FORK(27841) --- fork starting for 'RSSFeeds', PID == 27841, bot_pid == 6683 --- 22:45.38 FORK(27841) !ERROR! cannot load my module: RSSFeeds 22:45.38 FORK(27841) fork: took 1s for RSSFeeds. 22:45.38 FORK(27841) --- fork finished for 'RSSFeeds' --- 22:46.30 >>> marcosw has signed off IRC (Quit: marcosw) [#ghostscript] 22:49.18 Chans: (ghostbot) in:#ghostscript 23:15.56 --- Saved uptime records. 23:16.17 FORK(20701) --- fork starting for 'RSSFeeds', PID == 20701, bot_pid == 6683 --- 23:16.18 FORK(20701) !ERROR! cannot load my module: RSSFeeds 23:16.18 FORK(20701) fork: took 2s for RSSFeeds. 23:16.18 FORK(20701) --- fork finished for 'RSSFeeds' --- 23:21.18 Chans: (ghostbot) in:#ghostscript 23:31.06 >>> join/#ghostscript marcosw (~marcosw@c-67-164-54-215.hsd1.ca.comcast.net) 23:37.26 Chans: (ghostbot) in:#ghostscript 23:37.26 ircCheck: possible lost in space; checking.Sat Jan 26 23:37:26 2013 23:37.26 >ghostbot< TEST 23:37.27 IRCTEST: Yes, we're alive. 23:40.10 >>> join/#ghostscript mvrhel_laptop (~chatzilla@c-174-61-155-196.hsd1.wa.comcast.net) 23:46.45 FORK(25788) --- fork starting for 'RSSFeeds', PID == 25788, bot_pid == 6683 --- 23:46.46 FORK(25788) !ERROR! cannot load my module: RSSFeeds 23:46.46 FORK(25788) fork: took 2s for RSSFeeds. 23:46.46 FORK(25788) --- fork finished for 'RSSFeeds' --- 23:53.12 Chans: (ghostbot) in:#ghostscript