4/24/2017 1:52:04 PM
deprecated (#1005)
The update resolved a build warning in the web server sub-project:
"The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead."
see
http://mrhaki.blogspot.com/2016/11/gradle-goodness-replacing-operator-for.html
|
4/21/2017 12:39:52 AM
a user sets a wrong schedule id, NullPointerException occurs.
Fix:
Check for null and return an error. Testing:
```
$ curl -k --get --data "session.id=xxxxxxxx&ajax=slaInfo&scheduleId=1" http://localhost:8081/schedule
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 500 INTERNAL_SERVER_ERROR</title>
</head>
<body><h2>HTTP ERROR 500</h2>
<p>Problem accessing /schedule. Reason:
<pre> INTERNAL_SERVER_ERROR</pre></p><h3>Caused by:</h3><pre>java.lang.NullPointerException
at azkaban.webapp.servlet.ScheduleServlet.ajaxSlaInfo(ScheduleServlet.java:272)
at azkaban.webapp.servlet.ScheduleServlet.handleAJAXAction(ScheduleServlet.java:107)
at azkaban.webapp.servlet.ScheduleServlet.handleGet(ScheduleServlet.java:92)
at azkaban.webapp.servlet.LoginAbstractAzkabanServlet.doGet(LoginAbstractAzkabanServlet.java:125)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
</pre>
<hr /><i><small>Powered by Jetty://</small></i><br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
</body>
</html>
```
If you apply this patch, there is the following error message
```
{ "error" : "Error loading schedule. Schedule 1 doesn't exist"
}
```
|
4/20/2017 9:34:34 PM
a test failure intentionally.
Before:
:azkaban-web-server:test
azkaban.webapp.WebMetricsTest > testWebGetCallMeter FAILED java.lang.AssertionError at WebMetricsTest.java:62
19 tests completed, 1 failed
:azkaban-web-server:test FAILED
After:
:azkaban-web-server:test
azkaban.webapp.WebMetricsTest > testWebGetCallMeter FAILED java.lang.AssertionError: failed intentionally at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.assertTrue(Assert.java:41) at azkaban.webapp.WebMetricsTest.testWebGetCallMeter(WebMetricsTest.java:62)
19 tests completed, 1 failed
:azkaban-web-server:test FAILED
|
4/20/2017 8:01:23 PM
Remove state out of web servers - remove Project cache
* ConsolidateCodeOfRemovingProjectCache
* Add unit tests for projectManager. Fix one issue with removing projectByName cache.
* refactored unit tests for projectManager using Mockito
|
4/20/2017 3:44:58 PM
had a problem starting when HADOOP_HOME environment variable was not present in the system
-Fixed default set typo in HADOOP_HOME, HIVE_HOME and CLASSPATH.
|
4/19/2017 8:21:37 PM
(#991)
This patch introduces a `ServiceProvider` interface powered by `Guice` which is also a new dependency for Azkaban. This was required to implement some of the storage implementation code.
Storage API changes - refactored some of the storage APIs - Implemented Local storage for Azkaban + unit test - Included Stub for Database Storage.
None of these code paths are invoked anywhere in the codebase at this time. So this should not affect any existing code. Just wanted to break up my changes into smaller chunks to make it easier to review.
|
4/19/2017 3:49:06 PM
behavior (#994)
* adding test to verify dbcp connection pool auto commit reset behavior
In AZ code, some DB operations use autocommit=true conf but others don't. In this change, we try to figure out dbcp connection pool euto commit reset behavior by adding some test. The conclusion could be made after the test:
* The default connection comes with autocommit=true attribute.
* When a connection closes, this connection will be reset to autocommit=true before returning to the connection pool.
We bring in-memory h2 database to test dbcp behavior.
|
4/18/2017 1:48:17 PM
3.20.0
three errors.
"installedVersions.remove(versionKey);"
The type of the value doesn't match the actual type defined in the list.
Upon close inspection, it turns out that if the entry were
correctly removed, it would cause a logical error since the
for loop access the list by an index the list should not be modified
within the same loop.
|
4/17/2017 6:45:20 PM
was split into 4 classes in a package called Constants. The current change consolidates all classes into 1 single class with inner classes.
The motivation for this change is consolidation. - The classes were named as *Properties, *Internals etc which is not easy to guess and find. - Secondly, a separate package for constants seems like an overkill. The state of the constants in the code is quite fragmented and scattered across the codebase. Having a package for constants promotes further scattering and makes it difficult to find where to put what. - Although having strict boundaries for storing configuration keys, property keys may be helpful. This is the reason those smaller classes were merged into a single large class. If the class becomes really large and unmaintainable, we could split `ConfigurationKeys` out of the class. However, today I think it will be more easy to manage and refactor the code if we consolidate global constants such as strings and numbers in one consolidated class as opposed to multiple classes in a constants package.
+ Added Javadoc to Constants
|
4/17/2017 3:08:22 PM
module is legacy code which is no longer used anywhere. Removing it.
This also has some code duplication from other modules which gets confusing.
|