SageTV Community

SageTV Community (http://forums.sagetv.com/forums/index.php)
-   SageTV Customizations (http://forums.sagetv.com/forums/forumdisplay.php?f=27)
-   -   Plugin: Sage Job Queue (SJQ) v3 (http://forums.sagetv.com/forums/showthread.php?t=45174)

Slugger 11-05-2009 04:23 PM

Plugin: Sage Job Queue (SJQ) v3
 
Given the sweeping changes between SJQ v1 and the new SJQ v3, I feel it appropriate to start a new thread specifically for SJQ v3 support.

Please post only about SJQ v3 in this thread. SJQ v2 support can be had in this thread.

SJQ v3 is now officially open to support questions.

Please visit the project download site and grab the latest version (3.0.0.640 as of this post). Be sure to read the beta upgrade wiki before upgrading from SJQ v2. New users to SJQ v3 can ignore that wiki doc.

An initial draft of the SJQ v3 User's Guide is now available. It's a draft, it's rough, but most of the examples have been updated. Please feel free to point out errors and omissions in the doc.

A quick cheat sheet for users migrating from v2 to v3 will be available in a day or two (or three or four, i.e. some time sort of soon). Most of the tips to be included in that doc are scattered throughout the old support thread ($ object, kill active processes, IsObj* tests, etc.).

Please note, SJQ v3 is still in beta!

nyplayer 11-06-2009 11:35 AM

Slugger,

Question about _RUNQLOADER can this be run more than once.

for example

Rule # 1 runs a task QFIX against a media object then _RUNQLOADER

Rule # 2 runs COMSKIP against the same media object can I schedule another _RUNQLOADER in rule 2

tomfisk 11-06-2009 02:10 PM

Upgraded...can't log in...old version?
 
I just upgraded to 3.0.0.640. During the upgrade I shutdown the SageTV service, made a copy of the sjq.sqlite file, and installed the new version. The sjq.war file in the jetty/webapps directory shows a date of 11/4/09.

When I get to the login screen it isn't recognizing my password nor the default "sjqadmin". Additionally, when I click on the "About" under help it shows a dialog box with 2.1.5.484 as the version...???!!!

I did upgrade to the 1.6 Jetty release...and tested the old SJQ (coincidentally 2.1.5.484) to make sure the jetty installation was stable...everything worked fine. I also switched over to the jetty version of the webserver and that is running without problem.

So...is something being cached somewhere that needs to be flushed? Did I miss something in the upgrade?

Slugger 11-06-2009 02:28 PM

Quote:

Originally Posted by nyplayer (Post 390818)
Slugger,

Question about _RUNQLOADER can this be run more than once.

for example

Rule # 1 runs a task QFIX against a media object then _RUNQLOADER

Rule # 2 runs COMSKIP against the same media object can I schedule another _RUNQLOADER in rule 2

You're going to have to test that and let me know. I believe it's only going to run it once. Actually, it'd be a bug if it ran it more than once (for the same media file). I was aware of this when I wrote those internal tasks and am trying to think of a way to make those tasks "special" such that they don't attach themselves to a specific object, but instead you can just throw them into a rule block and have them run. My initial result was that it wouldn't be easy so I just implemented them as they are now (i.e. you can only run the tasks once per scanned object).

I can see a need/desire to be able to trigger those two tasks arbitrarily and more than once (actually the use case that triggered the addition of those tasks would probably want this behaviour as well).

Those tasks are likely to change before v3 is moved out of beta. For now, however, I think they're only going to run once (per media file). Please let me know if that's what you're seeing.

Slugger 11-06-2009 02:31 PM

Quote:

Originally Posted by tomfisk (Post 390856)
I just upgraded to 3.0.0.640. During the upgrade I shutdown the SageTV service, made a copy of the sjq.sqlite file, and installed the new version. The sjq.war file in the jetty/webapps directory shows a date of 11/4/09.

When I get to the login screen it isn't recognizing my password nor the default "sjqadmin". Additionally, when I click on the "About" under help it shows a dialog box with 2.1.5.484 as the version...???!!!

I did upgrade to the 1.6 Jetty release...and tested the old SJQ (coincidentally 2.1.5.484) to make sure the jetty installation was stable...everything worked fine. I also switched over to the jetty version of the webserver and that is running without problem.

So...is something being cached somewhere that needs to be flushed? Did I miss something in the upgrade?

Probably just your browser's cache. If you're indeed running SJQv3 then in the root install dir of Sage should be the sjq.log file. If that file's there and it's being updated periodically then SJQv3 is running on the server. And if so, then you just need to wipe the browser cache to ensure you're getting the new GUI (the 2.1.5 GUI you're seeing definitely will fail to communicate the pwd [or anything] to a SJQv3 server).

nyplayer 11-06-2009 03:00 PM

Quote:

Originally Posted by Slugger (Post 390857)
You're going to have to test that and let me know. I believe it's only going to run it once. Actually, it'd be a bug if it ran it more than once (for the same media file). I was aware of this when I wrote those internal tasks and am trying to think of a way to make those tasks "special" such that they don't attach themselves to a specific object, but instead you can just throw them into a rule block and have them run. My initial result was that it wouldn't be easy so I just implemented them as they are now (i.e. you can only run the tasks once per scanned object).

I can see a need/desire to be able to trigger those two tasks arbitrarily and more than once (actually the use case that triggered the addition of those tasks would probably want this behaviour as well).

Those tasks are likely to change before v3 is moved out of beta. For now, however, I think they're only going to run once (per media file). Please let me know if that's what you're seeing.

Yes it only runs once per media object... being able to run _SCANMEDIA and _RUNQLOADER without being attached to an object would be great.

tomfisk 11-06-2009 03:10 PM

Quote:

Originally Posted by Slugger (Post 390858)
Probably just your browser's cache. If you're indeed running SJQv3 then in the root install dir of Sage should be the sjq.log file. If that file's there and it's being updated periodically then SJQv3 is running on the server. And if so, then you just need to wipe the browser cache to ensure you're getting the new GUI (the 2.1.5 GUI you're seeing definitely will fail to communicate the pwd [or anything] to a SJQv3 server).

Yep...that was it...very strange that a CTRL/Refresh didn't even work...had to actually go and delete the cache from the settings (Firefox).

tomfisk 11-06-2009 04:00 PM

GetShowTitle warnings
 
I've pre-pended all my rules with "IsObjMediaFile == true" but I'm still getting a slew of

2009-11-06 15:47:45,046 WARN [RulesParser]: Unable to invoke method 'GetShowTitle'; return false for test!

warnings.

Any ideas?

nyplayer 11-06-2009 04:07 PM

Quote:

Originally Posted by tomfisk (Post 390865)
I've pre-pended all my rules with "IsObjMediaFile == true" but I'm still getting a slew of

2009-11-06 15:47:45,046 WARN [RulesParser]: Unable to invoke method 'GetShowTitle'; return false for test!

warnings.

Any ideas?

it should look like this.

IsObjMediaFile == "true" && $.GetMediaTitle{} == "NCIS"

Slugger 11-06-2009 04:27 PM

nyplayer is correct. Hopefully this section from the new SJQv3 User Guide will help.

Unfortunately, this is once again a case of the author of the code also authoring the docs so I'm probably skipping over some details just because I consider them "minor" b/c of my familiarity with everything. The basic idea from that link above is you need to test what kind of object you're scanning (via IsObjMediaFile or IsObjSysMsg) and once you know what kind of object you have then you can call tests against it via $.MethodName{}. The table of tests below that example shows which tests have been removed in SJQv3 and how to access similar info via calls to the $ object.

EDIT: You could also call $.GetMediaTitle{} as nyplayer suggested. $.GetShowTitle{} is also valid. For media objects, you can call methods from MediaFileAPI, ShowAPI. AiringAPI, or ChannelAPI, which is why either one would be valid.

Slugger 11-07-2009 10:32 AM

Quote:

Originally Posted by nyplayer (Post 390863)
Yes it only runs once per media object... being able to run _SCANMEDIA and _RUNQLOADER without being attached to an object would be great.

Issue ticket 91 details the solution I plan on implementing for this. Hopefully it makes sense? Basically going to drop these internal tasks and make them options that the task queue will then run after the task completes successfully.

Code:

if [IsObjMediaFile == true && $.GetShowTitle{} == "Seinfeld"] {
  :SCANMEDIA "true"
  :RUNQLOADER "true"
  :PRIORITY 100
  MYTASK
}

And so if MYTASK completes successfully then the task queue will also run a media scan then the queue loader (with the media scan always occurring before the queue loader is triggered). Busy weekend so probably won't be until early next week before I get a chance to implement this, but the idea popped into my head late last night so I thought I should write it down.

Slugger 11-08-2009 07:59 PM

Snapshot 647 contains the fix to move those two internal tasks to task options; implemented exactly as described above.

dislecksea 11-09-2009 08:02 AM

Not sure what I have done wrong
 
Just did the install (SJQ v3.0.0.647) and I am getting an error. FYI - I am just going for the basic "only process scheduled recordings using comskip" approach, so I have copied the rule directly from the wiki:

if [IsObjMediaFile == true && $.IsTVFile{} == true && $.IsNotManualOrFavorite{} == false] {
:PRIORITY 10 # Optional, default priority is zero
COMSKIP
}

But when I run it nothing happens and the log I get says:

2009-11-09 08:27:18,453 INFO [MediaFileQueueLoader]: Thread started
2009-11-09 08:27:18,453 INFO [ClientMonitor]: Thread started
2009-11-09 08:27:18,453 INFO [InternalTaskClient]: Thread started
2009-11-09 08:27:18,468 INFO [SystemMessageQueueLoader]: Thread started
2009-11-09 08:27:19,109 INFO [DataStore]: SQLite driver implementation: 'native'
2009-11-09 08:27:19,109 INFO [DataStore]: DataStore connection pool initialized with 5 connections.
2009-11-09 08:27:19,203 ERROR [MediaFileQueueLoader]: Unexpected exception
java.lang.RuntimeException: Invalid field name, 'IsTV', on line 1
at com.google.code.sagetvaddons.sjq.server.RulesParser$Evaluator.internalTest(RulesParser.java:210)
at com.google.code.sagetvaddons.sjq.server.RulesParser$Evaluator.runTest(RulesParser.java:135)
at com.google.code.sagetvaddons.sjq.server.RulesParser$Evaluator.evalTest(RulesParser.java:122)
at com.google.code.sagetvaddons.sjq.server.RulesParser$Evaluator.(RulesParser.java:72)
at com.google.code.sagetvaddons.sjq.server.RulesParser$Evaluator.(RulesParser.java:101)
at com.google.code.sagetvaddons.sjq.server.RulesParser.loadQ(RulesParser.java:258)
at com.google.code.sagetvaddons.sjq.server.RulesParser.(RulesParser.java:232)
at com.google.code.sagetvaddons.sjq.server.MediaFileQueueLoader.run(MediaFileQueueLoader.java:71)
at java.lang.Thread.run(Unknown Source)


Any thoughts on what I screwed up?

Thanks

Slugger 11-09-2009 11:07 AM

The example works as expected when I test it here, so if you did a copy/paste from the user's guide then check over it again and ensure there's no spaces accidentally inserted (check around $.IsTVFile{} b/c that's where the parser is complaining). If you upgraded from SJQ v2, then make sure your old rulesets are either removed or updated. 'IsTV' was the name of a test in v2 that is no longer valid in v3 and would need to be replaced with $.IsTVFile{} under SJQv3.

kfontenot 11-09-2009 07:00 PM

I know that you can no longer check for the archive flag in version 3, but is there any other flag that I could set manually and check for other than "Watched"? I would like to set some sort of flag to a recording and have it moved to a different drive using the new MOVEREC task. I don't want to set any rules that check for channel number or show id.

Slugger 11-09-2009 07:08 PM

Quote:

Originally Posted by kfontenot (Post 391463)
I know that you can no longer check for the archive flag in version 3, but is there any other flag that I could set manually and check for other than "Watched"? I would like to set some sort of flag to a recording and have it moved to a different drive using the new MOVEREC task. I don't want to set any rules that check for channel number or show id.

You can still set the archive flag with the _ARCHIVE task and you can still check for the flag, it just requires two tests:

($.IsTVFile{} == true && $.IsLibraryFile{} == true)

If that test is true then the file is an archived tv recording.

gveres 11-09-2009 11:17 PM

Slugger, great work. I just upgraded to v3 tonight to try out the SCANMEDIA and RUNQLOADER features that I asked for. They work perfectly, thank you very much for putting them in. It makes the entire system run so much smoother.


The above post just gave me an idea. I have been recording shows off the HD movie network channels and I then drag them over to my mac pro to run handbrake on them and put them into one of my video directories. Since I upgraded my server to a Core i5, I now have enough horsepower on the server to have the server do the work. I will have to see if those recordings are also flagged with isTV. I think what you and kfontenot are saying is that if I mark something as archived in the GUI, the rule would then trigger and it would be moved to the videos folder. That would definitely save some effort.


Greg

kfontenot 11-09-2009 11:27 PM

Thanks Slugger!! Would I also need this test as well : IsObjMediaFile == true ? I'm thinking not. I think the other tests would not pass if if it were not a media file.

Slugger 11-09-2009 11:37 PM

You don't need it, but it's recommended. You should always check to see what kind of object you're processing before calling API methods against it. Not doing so could cause a lot of headaches under certain circumstances (SJQ can handle it, but you may end up doing some things you don't expect).

Slugger 11-09-2009 11:44 PM

To illustrate my point from above:

Code:

# Run commercial flagger against all recordings that aren't watched except episodes of "Family Guy"
if [$.GetShowTitle{} != "Family Guy" && $.IsWatchedCompletely{} == false] {
  COMSKIP
}

If you don't check IsObjMediaFile == true then SJQ will insert any object that isn't a media file into the queue and try to run comskip on it, which for now is just system messages, but there are plans to add more types of objects to be scanned in the future. So you always want to do the IsObj* == true check.

Slugger 11-13-2009 10:41 PM

Advanced Archiving Rule
 
Just to provide an example of what I'm up to, here's my current rule for deciding what gets archived to my NAS.

Code:

if [IsObjMediaFile == true && $.IsTVFile{} == true && (TimeUntilNextRecording >= "6H" || FreeSpacePercentage < 7) && $.IsFileCurrentlyRecording{} == false && (((($.GetShowCategory{} == "Movie" && $.GetShowSubCategory{} != "Documentary") || $.GetShowTitle{} =% "Friends|Seinfeld|Night Court|Three's Company|Family Guy|Married \\.\\.\\. With Children") && $.IsLibraryFile{} == false) || ($.IsLibraryFile{} == true && Filename !^ "\\\\nas"))] {
  :MOVERECOPTS "\\\\nas\\tv"
  :FAILALERT "true"
  _MOVEREC
}

Basically, this test says to archive any tv recording as long as it's not actively recording AND there's at least 6 hours until the next recording OR there's less than 7% free space on my recording drives AND any one of the following conditions are met:
  • The recording is a movie and not a documentary
  • The title matches any of the titles in the given regex (current syndicated shows I'm recording)
  • For both of the above, the recording is only moved to the NAS if it's not marked as archived already (prevent endless loop of trying to archive the same recordings over and over; things archived with _MOVEREC task are automatically marked as archived by SageTV after they are moved)
  • Move a recording to the NAS if it's archived, but isn't already on the NAS (this allows me to mark something for the NAS without having to use titles or categories, etc)

:MOVERECOPTS tells SJQ which directory I'm archiving to (currently the UNC path "\\nas\tv"). The :FAILALERT option tells SJQ to create an alert with SageAlert should the archive attempt fail. Use SageAlert to notify yourself via email, Twitter, SMS, etc. (SageAlert options require SJQ v3.0.0.650 or newer).

Hopefully, this example shows that the sky's the limit as far as automating archival to network storage while SageTV is running.

Obligatory Disclaimer: Use of the _MOVEREC task in SJQ can cause irreversible damage to your SageTV system (lost/orphaned recordings, corrupted wiz.bin, some other unknown type of damage). Please consider the _MOVEREC task in SJQv3 to be EXPERIMENTAL. I take no responsibility for any damage caused to your SageTV through its use.

With that said, I've been using it quite happily for a few weeks now with no issues. The only known issue I'm aware of is that if you lose power or SageTV is shutdown unexpectedly during a _MOVEREC task then the recording being copied may end up being orphaned (the original recording should still be safe on your hard drive, but the link between it and its airing info in SageTV may have been lost). In such a case, the state of the operation is actually saved in SJQ and can be continued/recovered, but that continuation step has not been coded yet.

zzmystique 11-14-2009 07:40 AM

SJQ - Sagealert to warn of no guide data
 
I've been plagued recently with losing my guide data.

Can anyone suggest a way I can get SJQ to trigger a sagealert to warn me it has happened?

Thanks

Slugger 11-14-2009 09:39 AM

Quote:

Originally Posted by zzmystique (Post 392214)
I've been plagued recently with losing my guide data.

Can anyone suggest a way I can get SJQ to trigger a sagealert to warn me it has happened?

Thanks

Does SageTV generate a system message when this happens? If so, then you could have SJQ process the system message and then trigger an alert based on the content of the system message. Of course, if system messages are being generated then SageAlert itself already processes system messages on its own. That's about the best SJQ can do since it's only able to process media objects and system message objects - it knows nothing about the EPG itself.

nyplayer 11-15-2009 01:38 PM

Slugger,

It appears that sometimes the internal tasks just hang out there for some reason and not run. I remember in SJQ 2 you would check to make sure internal task scheduler is running.... are you doing the same in SJQ 3?

Slugger 11-15-2009 01:52 PM

Quote:

Originally Posted by nyplayer (Post 392381)
Slugger,

It appears that sometimes the internal tasks just hang out there for some reason and not run. I remember in SJQ 2 you would check to make sure internal task scheduler is running.... are you doing the same in SJQ 3?

No, I removed that "feature", shouldn't be necessary. If tasks aren't running then get a dump of the app by visiting the /sjq/SJQ?debug=TRUE and paste the contents of sjq.thread.dump (in root SageTV install dir) - also look for any exception dumps in sjq.log (same location) and paste those in. That watchdog process shouldn't be necessary and it just masks bugs that need to be squashed.

nyplayer 11-15-2009 02:14 PM

Slugger,

I have it running in Debug Mode now it Appears that this happens after a _MOVEREC fails... no more internal tasks run until I reset SJQ.

tomfisk 11-15-2009 02:44 PM

Quote:

Originally Posted by nyplayer (Post 392381)
Slugger,

It appears that sometimes the internal tasks just hang out there for some reason and not run. I remember in SJQ 2 you would check to make sure internal task scheduler is running.... are you doing the same in SJQ 3?

I've experienced this "feature" also ;) Haven't done any debugging to this point to try to figure out why...

nyplayer 11-15-2009 02:53 PM

Slugger,

On the way you do a move I see you rename the good file and add .tmp extension. Before actually copying it over to the destination. In the event of a sage crash etc... you would lose the original file because it is now named .tmp.

The way sagetvranscoder does it is save the file to the destination with .tmp at the end. Before deleting the original and renaming the .tmp to the original name and relinking.

zzmystique 11-15-2009 02:56 PM

Quote:

Originally Posted by Slugger (Post 392229)
Does SageTV generate a system message when this happens? If so, then you could have SJQ process the system message and then trigger an alert based on the content of the system message. Of course, if system messages are being generated then SageAlert itself already processes system messages on its own. That's about the best SJQ can do since it's only able to process media objects and system message objects - it knows nothing about the EPG itself.

I checked the system messages and there is no message generated when there is no guide data.

Will email sagetv support and see if they can suggest a way of monitoring for no guide data.

Thanks

Slugger 11-15-2009 03:32 PM

Quote:

Originally Posted by nyplayer (Post 392398)
Slugger,

I have it running in Debug Mode now it Appears that this happens after a _MOVEREC fails... no more internal tasks run until I reset SJQ.

Ok, wouldn't be totally surprised to hear that. Next time internal tasks stop running get that thread dump by visiting /sjq/SJQ?debug=TRUE - that will tell us if the InternalTaskClient indeed crashed.

Slugger 11-15-2009 03:37 PM

Quote:

Originally Posted by nyplayer (Post 392406)
Slugger,

On the way you do a move I see you rename the good file and add .tmp extension. Before actually copying it over to the destination. In the event of a sage crash etc... you would lose the original file because it is now named .tmp.

The way sagetvranscoder does it is save the file to the destination with .tmp at the end. Before deleting the original and renaming the .tmp to the original name and relinking.

The file's not lost - it's still on the HD, just renamed. I know it's not the ideal way to do it and I had originally coded it the other way, but changed it b/c I didn't want to waste time copying the file unless I knew I could delete the original so that's why I rename the original right away. I figured if the file is in use by a client (being viewed, for example) then I'll know right away if the rename of the file fails and then I can just abort the entire operation without wasting time trying to copy multiple GBs across the network (or where ever the destination of the move is). I'm still very open to changes in the _MOVEREC algorithm.

Slugger 11-15-2009 03:39 PM

@nyplayer - I'm also curious to know why your _MOVEREC tasks are failing? Is the rollback working when they do fail?

nyplayer 11-15-2009 03:53 PM

Yes the roll back works. It said that the file was in use.. for some reason.

nyplayer 11-15-2009 03:56 PM

Quote:

Originally Posted by Slugger (Post 392414)
@nyplayer - I'm also curious to know why your _MOVEREC tasks are failing? Is the rollback working when they do fail?

I believe the file was in use... that is the reason why it failed... and this appears to cause all other scheduled tasks to not run. I fully understand why you check to make sure file is not in use first.

PS I did test the rollback and it worked. Took a usb drive offline while a file was moving just to test and it worked fine.

Source: N:\sagen\LawOrder-Humiliation-4664989-0.mp4
Target: T:\saget
Renaming source file... DONE!
Copying source file to target directory... FAILED!
Rolling back archival attempt due to a step failing!
Deleting target file... ALREADY DONE!
Renaming source file... DONE!
Deleting target media object in SageTV... ALREADY DONE!
Recreating source media object in SageTV... ALREADY DONE!
Relinking source media object to airing object... DONE!
Rollback completed SUCCESSFULLY!

nyplayer 11-15-2009 06:04 PM

Slugger,

I tracked my problem to this paricular move.

java.io.IOException: Deletion of source failed!
at com.google.code.sagetvaddons.sjq.server.TvArchiver.delSourceMedia(TvArchiver.java:645)
at com.google.code.sagetvaddons.sjq.server.TvArchiver.run(TvArchiver.java:360)
at com.google.code.sagetvaddons.sjq.server.InternalTaskClient.moveRec(InternalTaskClient.java:115)
at com.google.code.sagetvaddons.sjq.server.InternalTaskClient.performTask(InternalTaskClient.java:97)
at com.google.code.sagetvaddons.sjq.server.InternalTaskClient.run(InternalTaskClient.java:53)
at java.lang.Thread.run(Unknown Source)
Sun Nov 15 16:01:12 PST 2009
Source: N:\sagen\LawOrderSpecialVictimsUnit-Users-4595432-0.mp4
Target: T:\saget
Renaming source file... DONE!
Copying source file to target directory... DONE!
Deleting source media object in SageTV... FAILED!
Rolling back archival attempt due to a step failing!
Deleting target file... DONE!
Renaming source file... DONE!
Deleting target media object in SageTV... ALREADY DONE!
Recreating source media object in SageTV... ALREADY DONE!
Relinking source media object to airing object... DONE!
Rollback completed SUCCESSFULLY!

Slugger 11-15-2009 11:15 PM

I need to know which thread(s) are crashing when a _MOVEREC task fails. Can you reproduce, then when the queue stops being processed, load the /sjq/SJQ?debug=TRUE URL then paste in the output from sjq.thread.dump, please?

The exception is being thrown b/c even though the file seems to have been renamed, Sage still refuses to delete the media file from wiz.bin (DeleteFileWithoutPrejudice() API call is failing). So the archiver task is throwing an exception and it seems to be caught, handled and rolled back properly. Looking at the code, I don't see why any thread would be dying off as a result of the TvArchiver task throwing an exception. So if you can get that thread dump output for me, it should answer all my questions.

Thanks.

Slugger 11-16-2009 02:54 PM

New task client snapshot 655 available: fixes a JSONException generated when the client tries to log task client errors back to the server; when the client tried to log this info back to the server, the client would crash as a result of this exception being thrown

gveres 11-16-2009 10:09 PM

Any ideas? This was working until I rebooted. I upgraded to v3 a few days ago.

Never mind. build 655 above fixed this issue. It's like Slugger read my mind. :)

Code:

wrapper  | --> Wrapper Started as Console
wrapper  | Java Service Wrapper Community Edition 3.3.1
wrapper  |  Copyright (C) 1999-2008 Tanuki Software, Inc.  All Rights Reserved.
wrapper  |    http://wrapper.tanukisoftware.org
wrapper  |
wrapper  | Launching a JVM...
jvm 1    | WrapperManager: Initializing...
jvm 1    | SJQ Task Client v2.1.5.556
jvm 1    | Using 'C:/sjqc' as location for configuration file...
jvm 1    | WrapperSimpleApp:
jvm 1    | WrapperSimpleApp: Encountered an error running main:
jvm 1    | WrapperSimpleApp: java.lang.RuntimeException: java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:8080/sjq/SJQ?proto=2&cmd=writeLog
jvm 1    | WrapperSimpleApp:        at com.google.code.sagetvaddons.sjqc.TaskClient.log(Unknown Source)
jvm 1    | WrapperSimpleApp:        at com.google.code.sagetvaddons.sjqc.TaskClient.log(Unknown Source)
jvm 1    | WrapperSimpleApp:        at com.google.code.sagetvaddons.sjqc.TaskClient.pop(Unknown Source)
jvm 1    | WrapperSimpleApp:        at com.google.code.sagetvaddons.sjqc.TaskClient.run(Unknown Source)
jvm 1    | WrapperSimpleApp:        at com.google.code.sagetvaddons.sjqc.TaskClient.main(Unknown Source)
jvm 1    | WrapperSimpleApp:        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jvm 1    | WrapperSimpleApp:        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
jvm 1    | WrapperSimpleApp:        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
jvm 1    | WrapperSimpleApp:        at java.lang.reflect.Method.invoke(Unknown Source)
jvm 1    | WrapperSimpleApp:        at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:236)
jvm 1    | WrapperSimpleApp:        at java.lang.Thread.run(Unknown Source)
jvm 1    | WrapperSimpleApp: Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:8080/sjq/SJQ?proto=2&cmd=writeLog
jvm 1    | WrapperSimpleApp:        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
jvm 1    | WrapperSimpleApp:        ... 11 more
wrapper  | <-- Wrapper Stopped
Press any key to continue . . .

Thanks
Greg

Slugger 11-16-2009 11:24 PM

Quote:

Originally Posted by gveres (Post 392627)
Any ideas? This was working until I rebooted. I upgraded to v3 a few days ago.

Never mind. build 655 above fixed this issue. It's like Slugger read my mind. :)

655 didn't fix this issue, directly. The issue here was that you were running task client v2.1.5.556 with a v3.0.0 server. The HTTP 500 errors come about because a 2.x client can't talk with a 3.x server. Of course, upgrading the task client to a 3.x version would immediately fix the problem. :)

nyplayer 11-17-2009 02:01 AM

Slugger,

Nothing is processing.. its just hung.

Code:

Mon Nov 16 23:57:39 PST 2009: SJQ Application Dump
        QueueLoader thread is alive...
                java.lang.Thread.sleep(Native Method)
                com.google.code.sagetvaddons.sjq.server.MediaFileQueueLoader.run(MediaFileQueueLoader.java:101)
                java.lang.Thread.run(Unknown Source)
        ClientMonitor thread is alive...
                java.lang.Thread.sleep(Native Method)
                com.google.code.sagetvaddons.sjq.server.ClientMonitor.run(ClientMonitor.java:35)
                java.lang.Thread.run(Unknown Source)
        InteralTaskClient thread is alive...
                java.lang.Thread.sleep(Native Method)
                com.google.code.sagetvaddons.sjq.server.InternalTaskClient.run(InternalTaskClient.java:59)
                java.lang.Thread.run(Unknown Source)
        Most recent LogCleaner thread is dead (this is normal behaviour)!
        Most recent FileCleaner thread is dead (this is normal behaviour)!



All times are GMT -6. The time now is 05:35 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.