diff options
| -rw-r--r-- | opentracker.c | 9 | ||||
| -rw-r--r-- | ot_http.c | 6 | ||||
| -rw-r--r-- | ot_mutex.c | 15 |
3 files changed, 7 insertions, 23 deletions
diff --git a/opentracker.c b/opentracker.c index 29c4ac7..212defc 100644 --- a/opentracker.c +++ b/opentracker.c | |||
| @@ -217,11 +217,9 @@ static void handle_write( const int64 sock ) { | |||
| 217 | chunked = 1; | 217 | chunked = 1; |
| 218 | 218 | ||
| 219 | for( i = 0; i < cookie->batches; ++i ) { | 219 | for( i = 0; i < cookie->batches; ++i ) { |
| 220 | fprintf(stderr, "handle_write inspects batch %zu of %zu (bytes left: %llu)\n", i, cookie->batches, cookie->batch[i].bytesleft); | ||
| 221 | if( cookie->batch[i].bytesleft ) { | 220 | if( cookie->batch[i].bytesleft ) { |
| 222 | int64 res = iob_send( sock, cookie->batch + i ); | 221 | int64 res = iob_send( sock, cookie->batch + i ); |
| 223 | 222 | ||
| 224 | fprintf(stderr, "handle_write yields res %lld when trying to iob_send\n", res); | ||
| 225 | if( res == -3 ) { | 223 | if( res == -3 ) { |
| 226 | handle_dead( sock ); | 224 | handle_dead( sock ); |
| 227 | return; | 225 | return; |
| @@ -237,13 +235,10 @@ static void handle_write( const int64 sock ) { | |||
| 237 | } | 235 | } |
| 238 | 236 | ||
| 239 | /* In a chunked transfer after all batches accumulated have been sent, wait for the next one */ | 237 | /* In a chunked transfer after all batches accumulated have been sent, wait for the next one */ |
| 240 | if( chunked ) { | 238 | if( chunked ) |
| 241 | fprintf( stderr, "handle_write is STRUCT_HTTP_FLAG_CHUNKED_IN_TRANSFER => dont want write on sock %lld\n", sock); | ||
| 242 | io_dontwantwrite( sock ); | 239 | io_dontwantwrite( sock ); |
| 243 | } else { | 240 | else |
| 244 | fprintf( stderr, "handle_write is STRUCT_HTTP_FLAG_CHUNKED_IN_TRANSFER => handle dead on sock %lld\n", sock); | ||
| 245 | handle_dead( sock ); | 241 | handle_dead( sock ); |
| 246 | } | ||
| 247 | } | 242 | } |
| 248 | 243 | ||
| 249 | static void handle_accept( const int64 serversocket ) { | 244 | static void handle_accept( const int64 serversocket ) { |
| @@ -144,8 +144,6 @@ ssize_t http_sendiovecdata( const int64 sock, struct ot_workstruct *ws, int iove | |||
| 144 | cookie->flag &= ~STRUCT_HTTP_FLAG_WAITINGFORTASK; | 144 | cookie->flag &= ~STRUCT_HTTP_FLAG_WAITINGFORTASK; |
| 145 | } | 145 | } |
| 146 | 146 | ||
| 147 | fprintf(stderr, "http_sendiovecdata sending %d iovec entries found cookie->batch == %p\n", iovec_entries, cookie->batch); | ||
| 148 | |||
| 149 | if( iovec_entries ) { | 147 | if( iovec_entries ) { |
| 150 | 148 | ||
| 151 | if( cookie->flag & STRUCT_HTTP_FLAG_GZIP ) | 149 | if( cookie->flag & STRUCT_HTTP_FLAG_GZIP ) |
| @@ -184,7 +182,6 @@ fprintf(stderr, "http_sendiovecdata sending %d iovec entries found cookie->batch | |||
| 184 | for( i=0; i<iovec_entries; ++i ) { | 182 | for( i=0; i<iovec_entries; ++i ) { |
| 185 | /* If the current batch's limit is reached, try to reallocate a new batch to work on */ | 183 | /* If the current batch's limit is reached, try to reallocate a new batch to work on */ |
| 186 | if( current->bytesleft > OT_BATCH_LIMIT ) { | 184 | if( current->bytesleft > OT_BATCH_LIMIT ) { |
| 187 | fprintf(stderr, "http_sendiovecdata found batch above limit: %llu\n", current->bytesleft); | ||
| 188 | io_batch * new_batch = realloc( cookie->batch, (cookie->batches + 1) * sizeof(io_batch) ); | 185 | io_batch * new_batch = realloc( cookie->batch, (cookie->batches + 1) * sizeof(io_batch) ); |
| 189 | if( new_batch ) { | 186 | if( new_batch ) { |
| 190 | cookie->batch = new_batch; | 187 | cookie->batch = new_batch; |
| @@ -192,7 +189,6 @@ fprintf(stderr, "http_sendiovecdata found batch above limit: %llu\n", current->b | |||
| 192 | iob_init_autofree(current ,0); | 189 | iob_init_autofree(current ,0); |
| 193 | } | 190 | } |
| 194 | } | 191 | } |
| 195 | fprintf(stderr, "http_sendiovecdata calling iob_addbuf_free with %zd\n", iovector[i].iov_len); | ||
| 196 | iob_addbuf_free( current, iovector[i].iov_base, iovector[i].iov_len ); | 192 | iob_addbuf_free( current, iovector[i].iov_base, iovector[i].iov_len ); |
| 197 | } | 193 | } |
| 198 | free( iovector ); | 194 | free( iovector ); |
| @@ -201,7 +197,6 @@ fprintf(stderr, "http_sendiovecdata calling iob_addbuf_free with %zd\n", iovecto | |||
| 201 | } | 197 | } |
| 202 | 198 | ||
| 203 | if ((cookie->flag & STRUCT_HTTP_FLAG_CHUNKED_IN_TRANSFER) && cookie->batch && !is_partial) { | 199 | if ((cookie->flag & STRUCT_HTTP_FLAG_CHUNKED_IN_TRANSFER) && cookie->batch && !is_partial) { |
| 204 | fprintf(stderr, "http_sendiovecdata adds a terminating 0 size buffer to batch\n"); | ||
| 205 | current = cookie->batch + cookie->batches - 1; | 200 | current = cookie->batch + cookie->batches - 1; |
| 206 | iob_addbuf(current, "0\r\n\r\n", 5); | 201 | iob_addbuf(current, "0\r\n\r\n", 5); |
| 207 | cookie->flag &= ~STRUCT_HTTP_FLAG_CHUNKED_IN_TRANSFER; | 202 | cookie->flag &= ~STRUCT_HTTP_FLAG_CHUNKED_IN_TRANSFER; |
| @@ -210,7 +205,6 @@ fprintf(stderr, "http_sendiovecdata adds a terminating 0 size buffer to batch\n" | |||
| 210 | /* writeable sockets timeout after 10 minutes */ | 205 | /* writeable sockets timeout after 10 minutes */ |
| 211 | taia_now( &t ); taia_addsec( &t, &t, OT_CLIENT_TIMEOUT_SEND ); | 206 | taia_now( &t ); taia_addsec( &t, &t, OT_CLIENT_TIMEOUT_SEND ); |
| 212 | io_timeout( sock, t ); | 207 | io_timeout( sock, t ); |
| 213 | fprintf (stderr, "http_sendiovecdata marks socket %lld as wantwrite\n", sock); | ||
| 214 | io_wantwrite( sock ); | 208 | io_wantwrite( sock ); |
| 215 | return 0; | 209 | return 0; |
| 216 | } | 210 | } |
| @@ -205,14 +205,12 @@ int mutex_workqueue_pushchunked(ot_taskid taskid, struct iovec *iovec) { | |||
| 205 | for (task = tasklist; task; task = task->next) | 205 | for (task = tasklist; task; task = task->next) |
| 206 | if (task->taskid == taskid) { | 206 | if (task->taskid == taskid) { |
| 207 | if( iovec ) { | 207 | if( iovec ) { |
| 208 | fprintf(stderr, "mutex_workqueue_pushchunked pushing on taskid %lu\n", taskid); | 208 | if (iovec_append(&task->iovec_entries, &task->iovec, iovec) ) |
| 209 | if (!iovec_append(&task->iovec_entries, &task->iovec, iovec) ) | 209 | task->tasktype = TASK_DONE_PARTIAL; |
| 210 | return -1; | 210 | else |
| 211 | task->tasktype = TASK_DONE_PARTIAL; | 211 | task = NULL; |
| 212 | } else { | 212 | } else |
| 213 | fprintf(stderr, "mutex_workqueue_pushchunked finished taskid %lu\n", taskid); | ||
| 214 | task->tasktype = TASK_DONE; | 213 | task->tasktype = TASK_DONE; |
| 215 | } | ||
| 216 | break; | 214 | break; |
| 217 | } | 215 | } |
| 218 | 216 | ||
| @@ -220,8 +218,6 @@ fprintf(stderr, "mutex_workqueue_pushchunked finished taskid %lu\n", taskid); | |||
| 220 | pthread_mutex_unlock( &tasklist_mutex ); | 218 | pthread_mutex_unlock( &tasklist_mutex ); |
| 221 | 219 | ||
| 222 | io_trywrite( g_self_pipe[1], &byte, 1 ); | 220 | io_trywrite( g_self_pipe[1], &byte, 1 ); |
| 223 | if(!task) | ||
| 224 | fprintf(stderr, "mutex_workqueue_pushchunked taskid %lu not found\n", taskid); | ||
| 225 | 221 | ||
| 226 | /* Indicate whether the worker has to throw away results */ | 222 | /* Indicate whether the worker has to throw away results */ |
| 227 | return task ? 0 : -1; | 223 | return task ? 0 : -1; |
| @@ -240,7 +236,6 @@ int64 mutex_workqueue_popresult( int *iovec_entries, struct iovec ** iovec, int | |||
| 240 | for (task = &tasklist; *task; task = &((*task)->next)) | 236 | for (task = &tasklist; *task; task = &((*task)->next)) |
| 241 | if (((*task)->tasktype & TASK_CLASS_MASK ) == TASK_DONE) { | 237 | if (((*task)->tasktype & TASK_CLASS_MASK ) == TASK_DONE) { |
| 242 | struct ot_task *ptask = *task; | 238 | struct ot_task *ptask = *task; |
| 243 | fprintf(stderr, "Got task %lu type %d with %d entries\n", (*task)->taskid, (*task)->tasktype, ptask->iovec_entries); | ||
| 244 | *iovec_entries = ptask->iovec_entries; | 239 | *iovec_entries = ptask->iovec_entries; |
| 245 | *iovec = ptask->iovec; | 240 | *iovec = ptask->iovec; |
| 246 | sock = ptask->sock; | 241 | sock = ptask->sock; |
