Giter Site home page Giter Site logo

massdosage / citrine-scheduler Goto Github PK

View Code? Open in Web Editor NEW
4.0 5.0 4.0 299 KB

Java web application which can be used to configure, manage and monitor the running of various tasks

License: Apache License 2.0

Java 97.85% CSS 0.37% HTML 0.19% JavaScript 0.11% XSLT 1.48%

citrine-scheduler's Introduction

Citrine is a Java web application which can be used to configure, manage and monitor the running of various tasks (typically, but not limited to, shell scripts). It can be thought of as a GUI replacement for cron with extra functionality. It can also be thought of as a GUI for the Java Quartz Scheduler ("citrine" is a type of quartz).

Citrine can be downloaded here.

Please refer to the project's Wiki for usage and other information.

Latest news

  • Project moved from Google Code to Github (2015-06-31) - with Google Code's [impending closure] (http://google-opensource.blogspot.co.uk/2015/03/farewell-to-google-code.html) Citrine has been moved to a new home in Github. Citrine isn't actively developed any more but the code is still available here for future reference, forking or the consideration of pull requests.
  • 4.2.1 release available (2013-02-06) - Fixed issues with static files not being downloaded in Tomcat 7. Download it and report any issues to the Citrine group

#Legal

This project is available under the Apache 2.0 License.

Copyright 2008-2015 Last.fm & Mass Dosage

citrine-scheduler's People

Contributors

massdosage avatar patduin avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

citrine-scheduler's Issues

Upgrade to Quartz 1.8.3

Version of Quartz used in Citrine is fairly old, we should upgrade.

Original issue reported on code.google.com by massdosage on 20 Sep 2010 at 5:13

Alternative for Quartz manager

Hello,

       I am Srikanth, we are evaluating softwares for managing the Quartz Jobs. 
I would like to know whether Quartz jobs can be managed by Citrine?

We are looking for features like, creating, updating, deleting, shutdown, 
abort, and log of all scheduled jobs from UI.

It would be very helpful, we you could share some details about the same.

Thanks in Advance.

Best Regards,
Srikanth.

Original issue reported on code.google.com by [email protected] on 27 Aug 2012 at 10:20

Stopping a running task doesn't end the remote processes

What steps will reproduce the problem?
1. Create a task which uses the sysExecJob to run something like "ssh 
someserver.com/somescript.sh" 
2. somescript.sh should in turn do something like 
java com.example.SomeJavaApp $@
exit $?
3. Have the above Java program do something that takes a long time
4. While it is still running try stop the task from the Citrine web ui.
5. The ps on the citrine server shows the task as gone but the script and the 
forked java process still show as running on the remote server.

What is the expected output? What do you see instead?
Stopping a task should stop all forked processes, on remote machines too.

Original issue reported on code.google.com by massdosage on 20 Sep 2010 at 5:17

Putting task logs outside the webapp directory breaks the Raw File view and Task Runs log view

What steps will reproduce the problem?
1. Set sysexec.logpath in citrine.properties to something outside the webapp 
dir, e.g. /home/citrine/apache-tomcat/logs/citrine
2. Go to the Raw File view, or the Log link from the Task Runs page

What is the expected output? What do you see instead?

Instead of the logs, you get 404s.

What version of the product are you using? On what operating system?

4.1.1 on Tomcat 6.0.32 on Ubuntu 8.04

Please provide any additional information below.

You can partially work round it by symlinking the real logs directory into a 
location with the Citrine webapp, e.g.:

/home/citrine/apache-tomcat/webapps/citrine/logs/

and setting this as the location pointed to by sysexec.logpath in 
citrine.properties -- however, on tomcat, you have to enable symlink following 
by adding allowLinking="true" to the Context element of context.xml (or any 
other appropriate context location).

However, this only seems to work for the Log link in the Task Runs view, for 
some reason. In the Raw File view, I get a directory listing, but the actual 
files 404.

Original issue reported on code.google.com by [email protected] on 27 May 2011 at 3:20

Add findbugs to build

Add findbugs code analysis tool to build.

Original issue reported on code.google.com by massdosage on 9 Apr 2010 at 2:54

Link to full task logs in success/error emails

Just for convenience, so I don't have to edit URLs or manually click around
when I want to see the full log.

May require a bit of work and thought to do properly since a nice
implementation would require knowledge of the URL where citrine is hosted,
and atm we have multiple sort-of-equivalent URLs. Maybe it could just grab
the URL to put in the e-mails from a config file (which is how hudson does it).

Original issue reported on code.google.com by massdosage on 7 Jan 2010 at 6:43

Add a lastRun column on the tasks overview page

Extra column show the start date of the most recently run task preferably in a 
human readable format (e.g. 1 week 2 days ago, 8 hours ago, etc...)

Joda time: PeriodFormatBuilder might be of some use for that


Original issue reported on code.google.com by [email protected] on 22 Jun 2012 at 3:08

Add Apache 2.0 license to root of project and add to .tgz

Citrine is released under the Apache 2.0 license and this is mentioned in
various source files but the actual license text should be included in the
.tgz release.

Original issue reported on code.google.com by massdosage on 16 Apr 2010 at 8:30

Somehow accumulates open pipe, without closing them.

We hit the too many open files limit running citrine on one of our servers.
(ulimit -n = 1024) The seem to be open pipes just hanging around.

eg:

$ lsof | grep pipe | grep java | head
java      20874         mir    0r     FIFO                0,5           
73871645 pipe
java      20874         mir    1w     FIFO                0,5           
73871646 pipe
java      20874         mir    2w     FIFO                0,5           
73871647 pipe
java      27822         mir   41w     FIFO                0,5           
71105954 pipe
java      27822         mir   42w     FIFO                0,5           
71107391 pipe
java      27822         mir   43w     FIFO                0,5           
71103896 pipe
java      27822         mir   44w     FIFO                0,5           
71105110 pipe
java      27822         mir   45w     FIFO                0,5           
71111993 pipe
java      27822         mir   46w     FIFO                0,5           
71113395 pipe
java      27822         mir   47w     FIFO                0,5           
71108865 pipe

$ lsof | grep pipe | grep java | wc -l
963

$ ulimit -n
1024

$ ps x | grep java
27822 ?        Sl     4:23 /usr/lib/jvm/java-6-sun/bin/java
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
-Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties
-Djava.endorsed.dirs=/usr/share/tomcat/endorsed 
-classpath :/usr/share/tomcat/bin/bootstrap.jar
-Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat 
-Djava.io.tmpdir=/usr/share/tomcat/temp
org.apache.catalina.startup.Bootstrap start
27901 ?        Z      0:00 [java] <defunct>
20874 ?        Sl     3:19 java -cp build/classes:lib/*
fm.last.dbjobs.StrayTrackCorrector tmp/artist_stray_list
tmp/updated_stray_tracks
26738 pts/24   S+     0:00 grep java

The defunct process is probably a red herring. There isn't one on another
server, but there does seems to be the same problem. The open file limit on
the other server is big enough we've just never hit it. The stray track
corrector is a long running job, I don't think it is the cause, looking at
it's code it doesn't seem to do anything weird in the java code, it's bash
start script just does some standard awking.

Temporary solution, increase ulimit.

On the other server
lsof | grep pipe | grep java | wc -l
720
ulimit -n
65000



Original issue reported on code.google.com by massdosage on 7 Jan 2010 at 6:40

Job is triggered once after removing the cron expression

What steps will reproduce the problem?
1. Set an existing (cron expression scheduled) job and add it as a child job of 
another
2. Edit the existing job and remove the cron expression

What is the expected output? What do you see instead?
The existing job will be triggered by its parent but will also be triggered by 
its next scheduled time from the old cron expression.

Original issue reported on code.google.com by [email protected] on 3 Feb 2011 at 9:55

Specify thread pool per group

To specify threads per group:

Create custom thread pool (might be able to extend their SimpleThreadPool)
where instead of having global number of threads, we have number per job
group. There is then a way to override the threadpool implementation quartz
uses:

http://www.opensymphony.com/quartz/wikidocs/ConfigThreadPool.html

Original issue reported on code.google.com by massdosage on 9 Apr 2010 at 2:55

notifyOnFailure is null in default data

What steps will reproduce the problem?
1. Use your dang project.
2. Run the base_data.sql to create some tasks
3. start tomcat

What is the expected output? What do you see instead?

I expected it to, I don't know, WORK MAYBE!?!?!  Instead I got an error output 
longer than James Joyce's Ulysses.  Looks like default for notifyOnFailure is 
null, which it can't convert to a boolean because Java is stupid.

What version of the product are you using? On what operating system?


Please provide any additional information below.

Attached a patch for your lazy asses.

Original issue reported on code.google.com by [email protected] on 8 Sep 2010 at 11:20

Attachments:

Modify javadoc generation to contain Apache license

What steps will reproduce the problem?
1.
2.
3.

What is the expected output? What do you see instead?


Please use labels and text to provide additional information.


Original issue reported on code.google.com by massdosage on 9 Apr 2010 at 2:52

Add changelog to .tgz

changelog.txt should be part of the .tgz release.

Original issue reported on code.google.com by massdosage on 16 Apr 2010 at 8:29

Move job logs to /var/log

Since job logs are kept in the webapp directory, upgrading the app means losing 
all previous job logs (unless you copy them back manually)

What steps will reproduce the problem?
1. Run jobs that generate log output
2. Upgrade citrine
3. Try to look at logs of old jobs

What is the expected output? What do you see instead?
- expected: can see logs
- actual result: only can inspect last few bytes of log output; the full logs 
are gone

Original issue reported on code.google.com by [email protected] on 4 Mar 2011 at 12:48

static index.html css and java script is not accessible in latest version

What steps will reproduce the problem?
1. download tomcat 7
2. cp citrine 4.2.0 .war to webapps/ and citrine.properties to lib/
3. bin/startup.sh
4. open localhost:8080/citrine/

What is the expected output? 
index.html

What do you see instead?
404 error

The web.xml needs to include explicit servlet mappings for the static stuff. I 
thought I included this in my patch, but it seems it was missed. I've been 
running my own version of 4.2.0 until now.




Original issue reported on code.google.com by [email protected] on 14 Jan 2013 at 3:54

Citrine: Parent job wont run again if it finishes while child job is still running

To reproduce this bug...

Have two tasks Parent and Child. With the Child obviously a child task of
Parent.
Child task should take a long time, Parent job should be quick.

Go to the web ui, start the Parent.
When the Parent finishes and the Child is running, start the Parent again.

You should have 2 emails from the parent job finishing successfully. The
child task will still be running normally.
However if you try to run the Parent task again, it will throw an exception
saying quartz thinks it is still running.

On the ui the Parent will look green and have two logs for successful runs.
The Child will finish normally (just once) and have a successful log.

The logs will show no failures, but the Parent task will no longer run.

Original issue reported on code.google.com by massdosage on 7 Jan 2010 at 6:46

Citrine keeping log files open

On a long-running citrine instance do:

lsof | grep citrine

This results in a long list of log files. Seems like citrine is keeping
references open on these for some reason. This causes "too many open files"
issues.


Original issue reported on code.google.com by massdosage on 7 Jan 2010 at 6:45

Get Citrine ready for a first open source release

Things to do:

- Write documentation on how to setup, install, run etc.
- See if there are any hardcoded paths etc. which make it Linux-dependent.
- Advertise it on Quartz mailing list when set up.

Original issue reported on code.google.com by massdosage on 7 Jan 2010 at 6:41

Improve Citrine to handle hundreds of thousands of log files

Currently Citrine doesn't handle tasks which generate hundreds of thousands
of log files very well. 

Some issues are:

- DB task runs tables grow very large.
- Number of log files on disk grow so large that doing a File.listFiles
runs out of memory.

To fix this we need to:

- Modify the log cleaner so that it can be configured per Task instead of
system wide. So, for example, monthly tasks' task run logs could be set to
be cleared once every few months and a job that runs every minute once a
day. Need to decide granularity of this. Should also be able to mark Tasks
as never having their logs cleared. Might be nice to have to have separate
settings for files and task run entries in the DB.
- Modify how the log files are stored so their is a directory per task
instead of all log files going to the same location.

Original issue reported on code.google.com by massdosage on 4 Mar 2010 at 12:12

Disabled tasks should show up in a different colour in Tasks Overview

Currently disabled tasks show up in the Tasks Overview with the colour of the 
last task run, i.e. the same as enabled tasks. They should show up in a 
different colour (I propose grey) and that way we can remove the "enabled" 
column as this info will be given by the colour instead.

Original issue reported on code.google.com by massdosage on 22 Jun 2012 at 3:05

Add HTML id attributes to job rows in Citrine

[moved from internal Last.fm feature request]

For the purposes of documentation it would be nice to be able to link directly 
to configured jobs in Citrine. For example, in my [project X] documentation I'd 
like to add a convenience link to the [project X] job in Citrine.

To do this we need some HTML anchors in the jobs list. I think that this can be 
achieved simply by adding id attributes the the link tags for each job:

<a href="task_edit.do?id=123&amp;selectedGroupName=-">Pellegrino Data 
Extractor</a>

becomes:

<a id="job-123" href="task_edit.do?id=123&amp;selectedGroupName=-">Pellegrino 
Data Extractor</a>

Then on the wiki I can simply link to:

http://HOST/citrinetasks.do#job-123

Group name can be used to filter it somewhat:

Oh, I see that group name can filter it somewhat:

http://HOST/citrine/tasks.do?selectedGroupName=pellegrino

but it would be nice to be able to be more specific

Original issue reported on code.google.com by massdosage on 22 Jun 2012 at 5:45

Remove BeanName from Tasks Overview

I'm not sure anyone finds this useful in the overview. People can get this from 
the Task detail/edit view. Removing it clears up some screen real estate.

Original issue reported on code.google.com by massdosage on 22 Jun 2012 at 3:12

Add ant-googlecode library to Ivy

The ant-googlecode library used for uploading the Citrine binary release to
google code is not in Ivy. It needs to be added to Ivy Roundup (if it's not
already there) as well as the internal Last.fm Ivy repository, and can then
be added to the ivy.xml files.

Original issue reported on code.google.com by massdosage on 16 Apr 2010 at 2:26

Add DDL to zip file

... and document how to use this to create a new citrine DB. Initially will
just provide this for MySQL, maybe later generate other DDL's or tell
people how to do it from the source.

Original issue reported on code.google.com by massdosage on 7 Jan 2010 at 6:53

Add support for more notification types

Currently Citrine only supports e-mail notifications. This should be
extended to allow other types of notification to be added.

Original issue reported on code.google.com by massdosage on 29 Mar 2010 at 9:49

Add unit tests for controllers

Currently all unit tests are at the service and data level. We should add
tests of the controllers.

Original issue reported on code.google.com by massdosage on 9 Apr 2010 at 2:53

graph job execution time

We currently already capture the execution time of each task run -- I would 
love to see a graph 
of this (one graph per task.) 

This would allow us to:
* observe long-term trends (e.g. increased execution time as a result of data 
growth)
* visually estimate how long a running task will take
* visually catch outliers, which may help in debugging problems.

This graph should probably be on the task's "Task Runs" page, though I wouldn't 
mind 
additionally seeing small sparkline graphs on the "Tasks Overview" page.

Other details:
* x-axis: job ID; y-axis: execution time (maybe always just show the last n 
jobs)
* highlight errors, cancelled/interrupted/... jobs

Original issue reported on code.google.com by [email protected] on 16 Apr 2010 at 12:17

Create a logo for Citrine

A logo for Citrine would be great. Citrine is a type of Quartz so that
could be a good angle.

Original issue reported on code.google.com by massdosage on 17 Apr 2010 at 11:21

Add cobertura coverage to build

Add cobertura coverage tool to build to get coverage reports of tests.

Original issue reported on code.google.com by massdosage on 9 Apr 2010 at 2:54

Running Citrine in Oracle

What steps will reproduce the problem?
My company's policy is that we need to use Oracle (since we have licenses for 
it and mostly Oracle DBA's and DB developers) and for some reason we don't want 
to fork over license costs attached to running MySql in production.
So attempting to use Oracle instead of MySql yielded these results.

1. Switch the driver to use oracle
2. Switch the jdbc properties to use your Oracle instance
3. Run Tests via mvn clean test -Poracle

What is the expected output? What do you see instead?
Fails due to several issues.
1. Validation Query does not bide well with Oracle.
In Oracle it should be "SELECT 1 FROM DUAL"
2. The unit tests fail. One reason is that a column called beanName in Task 
class is nullable=false. And this becomes an issue with Oracle since some of 
the tests pass an empty string which is treated as null by Oracle. If this has 
to be a not null column, we'll have to fix the tests. Otherwise, I simply 
changed the column to be nullable=true.
3. The ID generation strategy chosen does not work with Oracle. This is both in 
Task and TaskRun entities. Changed it to be TABLE instead.
4. Some of the tests seem to be timing out for me though. Still investigating 
why this is occurring.

What version of the product are you using? On what operating system?

Please provide any additional information below.
-Adding profiles to the pom for mysql and oracle.
Depending which profile is running the proper values will be filled in such as 
dialect, driver's dependency info, etc.
-The default profile is mysql.
-Might be a good idea to switch to using JPA instead of hibernate in the future 
to configure the app.

However, even with the failed tests I was able to run the webapp against Oracle 
in my tomcat 6.0.33. So that's good news!

Original issue reported on code.google.com by [email protected] on 29 Aug 2012 at 8:43

Stack trace when starting a task in the process of cancelling

What steps will reproduce the problem?
1. Start a wait job
2. Stop the wait job
3. Start the wait job whilst the wait job is cancelling

DOH!

An Error has occurred in this application:

fm.last.citrine.scheduler.ScheduleException: Error scheduling task with id 
6; nested exception is org.quartz.ObjectAlreadyExistsException: Unable to 
store Job with name: '6' and group: 'test-immediate', because one already 
exists with this identification..

Click here to go back to the home page and try continue what you were 
doing. If this problem persists please contact your system administrator.

Error scheduling task with id 6; nested exception is 
org.quartz.ObjectAlreadyExistsException: Unable to store Job with name: '6' 
and group: 'test-immediate', because one already exists with this 
identification. 
fm.last.citrine.scheduler.SchedulerManager.runTaskNow(SchedulerManager.java
:140)
fm.last.citrine.web.TaskController.run(TaskController.java:145)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:5
7)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
l.java:43)
java.lang.reflect.Method.invoke(Method.java:616)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.invok
eNamedMethod(MultiActionController.java:473)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.handl
eRequestInternal(MultiActionController.java:410)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(Abstra
ctController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(S
impleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServ
let.java:875)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServl
et.java:807)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkSe
rvlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.jav
a:501)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio
nFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC
hain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j
ava:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.j
ava:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:12
7)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:10
2)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.jav
a:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Htt
p11Protocol.java:588)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:636)


Original issue reported on code.google.com by [email protected] on 17 Apr 2010 at 1:18

Use something like hudson for viewing log files

The current log file view is *very* basic. We should do something like
Hudson does with it's "view console" view.

Original issue reported on code.google.com by massdosage on 7 Jan 2010 at 6:42

Stopping a task which generates no output throws exception

What steps will reproduce the problem?
1. Run a task the generates no output (e.g. a sysExcecJob that does "sleep 600"
2. While it is running, stop it.

What is the expected output? What do you see instead?

You will get a stack trace like so:

0-09-21 17:45:25,768 ERROR 
fm.last.syscommand.AsyncStreamReader.run(AsyncStreamReader.java:65) Error 
running stream reader
java.io.IOException: Bad file descriptor
    at java.io.FileInputStream.readBytes(Native Method)
    at java.io.FileInputStream.read(FileInputStream.java:199)
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
    at java.io.InputStreamReader.read(InputStreamReader.java:167)
    at java.io.BufferedReader.fill(BufferedReader.java:136)
    at java.io.BufferedReader.readLine(BufferedReader.java:299)
    at java.io.BufferedReader.readLine(BufferedReader.java:362)
    at fm.last.syscommand.AsyncStreamReader.readCommandOutput(AsyncStreamReader.java:83)
    at fm.last.syscommand.AsyncStreamReader.run(AsyncStreamReader.java:63)

While this is actually "normal". Unfortunately there doesn't seem to be a way 
to detect that a stream is empty. This should at worst generate a warning not a 
stack trace.

Original issue reported on code.google.com by massdosage on 21 Sep 2010 at 5:01

Unit test failures related to file path resolution on Windows

What steps will reproduce the problem?
1. Use windows
2. Run the unit tests via "mvn test"

What is the expected output? What do you see instead?
Once the test setup is completed, I expect to see all of the tests pass.
Instead, I got 2 Failures and 12 Errors.

What version of the product are you using? On what operating system?
Windows 7; Latest svn checkout Rev 166.

Please provide any additional information below.
I have an svn patch attached to make it work.
Basically, I used the commons-lang library instead of jdk and swapped out the 
calls to the String.replaceAll to StringUtils.replace and String.split to 
StringUtils.split.
That does the trick.
Oh, there were a few other places where I replaced the hardcoded 
unix-separators "/" with the File.separator.

Original issue reported on code.google.com by [email protected] on 6 Aug 2012 at 8:53

Attachments:

two tasks are scheduled when renaming group

What steps will reproduce the problem?
1. enable a time scheduled task (do an ls every minute or so)
2. rename group
3. next minute two tasks will run

What is the expected output? What do you see instead?
Only one task should be schedule.


Workaround:
1. disable task, save
2. rename back to old group name, save
3. rename back to new group name, save
4. enable task.



Original issue reported on code.google.com by [email protected] on 2 May 2013 at 8:26

Add Ivy to install instructions

The instructions to install from source currently assume that ivy is installed.

Ivy needs to be downloaded from ant.apache.org/ivy and installed before
citrine can be successfully built.

Original issue reported on code.google.com by [email protected] on 17 Apr 2010 at 11:38

Escape strings in html view

[ticket moved here from internal last.fm bug report]

have a log line in the the log output that says

Europe country list: <BG>

If I look at the logs while the app is running, all I see is

Europe country list:

If I look at the .log file after the app has stopped, I do see a correct
Europe country list: <BG>

I guess rightly that this must have to do with HTML escaping

Original issue reported on code.google.com by massdosage on 22 Jun 2012 at 5:43

Add version num to .tgz (and war?)

Not sure exactly what the issue is here, thought we already did this, need
to check, but writing down here from my old notes anyway.

Original issue reported on code.google.com by massdosage on 7 Jan 2010 at 6:54

Log File Cleaner does not clean up big log files which end in .log.N

What steps will reproduce the problem?
1. Run a citrine job which creates a big log file, this will be job.log, 
job.log.1
2. Run the log cleaner admin job with a time that should delete this

What is the expected output? What do you see instead?
All log filers older than the expected date should be deleted. job.log is 
deleted, but job.log.1 (and .2, .3 etc) aren't.


Please use labels and text to provide additional information.

LogFileManagerImpl uses a pattern of ".log" to delete files, this should be 
expanded to ".log*"

Original issue reported on code.google.com by massdosage on 18 May 2011 at 5:23

User guide for creating/editing tasks

Edit Citrine Wiki User page and add sections for creating/editing tasks.

Original issue reported on code.google.com by massdosage on 17 Apr 2010 at 11:14

ObjectAlreadyExistsException

Occasionally when trying to trigger a build manually from the web ui, citrine 
will throw an ObjectAlreadyExistsException (full stack below). Resetting it 
should fix this. However, recently kicking off the job seemed to misfire - 
there was no log and no running process, but subsequent runs would cause the 
exception. A reset would then allow the run to be kicked off, but again with no 
log or process. The real bug here might be the process not being kicked off for 
some reason.

Error scheduling task with id 98; nested exception is 
org.quartz.ObjectAlreadyExistsException: Unable to store Job with name: '98' 
and group: 'playlinks-immediate', because one already exists with this 
identification. 
fm.last.citrine.scheduler.SchedulerManager.runTaskNow(SchedulerManager.java:140)
fm.last.citrine.web.TaskController.run(TaskController.java:145)
sun.reflect.GeneratedMethodAccessor246.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeName
dMethod(MultiActionController.java:473)
org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequ
estInternal(MultiActionController.java:410)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractCon
troller.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(Simple
ControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.j
ava:875)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.ja
va:807)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet
.java:571)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501
)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt
erChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.
java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2
33)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:1
91)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109
)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Pr
otocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
java.lang.Thread.run(Thread.java:619)

Original issue reported on code.google.com by massdosage on 15 Sep 2010 at 11:41

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.