Commit f7a8eeeb authored by Geoff Simmons's avatar Geoff Simmons

trackrdrd: Fixed NULL/0 errors and #includes (for build on Debian)

vcl: 204 response fetched from ts-processor and cached
mock-processor: generate the 204 response, name changed to ts-processor
parent db6d2798
......@@ -22,6 +22,6 @@
</dependency>
</dependencies>
<build>
<finalName>mock-processor</finalName>
<finalName>ts-processor</finalName>
</build>
</project>
......@@ -5,8 +5,16 @@
<servlet-name>mock-processor</servlet-name>
<servlet-class>de.otto.lhotse.track.rdr.mockproc.Processor</servlet-class>
</servlet>
<servlet>
<servlet-name>respond204</servlet-name>
<servlet-class>de.otto.lhotse.track.rdr.mockproc.Respond204</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>mock-processor</servlet-name>
<url-pattern>/ts-processor</url-pattern>
<url-pattern>/httpProcess</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>respond204</servlet-name>
<url-pattern>/204</url-pattern>
</servlet-mapping>
</web-app>
......@@ -97,7 +97,7 @@ static char
entry->end = strlen(entry->data);
entry->state = DATA_DONE;
sprintf(errmsg, "SPMCQ_Enq: queue full");
mu_assert(errmsg, SPMCQ_Enq(entry) != NULL);
mu_assert(errmsg, SPMCQ_Enq(entry));
}
WRK_Halt();
......
......@@ -47,6 +47,8 @@
#include <sys/fcntl.h>
#include <pthread.h>
#include <stdarg.h>
#include <sys/wait.h>
#include <sys/types.h>
#include "compat/daemon.h"
......@@ -95,8 +97,8 @@ submit(unsigned xid)
CHECK_OBJ_NOTNULL(entry, DATA_MAGIC);
assert(entry->state == DATA_DONE);
LOG_Log(LOG_DEBUG, "submit: data=[%.*s]", entry->end, entry->data);
/* XXX: Termination */
while (SPMCQ_Enq((void *) entry) == NULL) {
while (!SPMCQ_Enq((void *) entry)) {
tbl.wait_qfull++;
LOG_Log(LOG_ALERT, "%s", "Internal queue full, waiting for dequeue");
AZ(pthread_mutex_lock(&spmcq_nonfull_lock));
AZ(pthread_cond_wait(&spmcq_nonfull_cond, &spmcq_nonempty_lock));
......@@ -409,7 +411,7 @@ child_main(struct VSM_data *vd, int endless)
}
errnum = WRK_Init();
if (errnum != NULL) {
if (errnum != 0) {
LOG_Log(LOG_ERR, "Cannot prepare worker threads: %s",
strerror(errnum));
exit(EXIT_FAILURE);
......
......@@ -47,6 +47,14 @@ sub vcl_recv_track {
std.log("track " + req.xid + " " +
regsub(req.url, "^.+\?(.+)$", "\1"));
}
error 204 "track";
set req.url = "/ts-processor/204";
}
}
sub vcl_fetch_track {
if (req.url == "/ts-processor/204" && beresp.status == 204) {
set beresp.ttl = 4294967295s;
return(deliver);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment