[jira] [Updated] (TS-4880) RemapPlugin class doesn't work correctly

2016-09-20 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-4880?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-4880:
--
Description: 
Current atscppapi::RemapPlugin has two issues. These seem to be caused by 
missing utils::internal::initTransactionManagement() call.

First, after TS-4555, plugins uses RemapPlugin class doesn't work because it 
can't pass an assertion.

{noformat}
# my remap.config. It uses RemapPlugin, one of atscppapi examples.
map / http://127.0.0.1:80/ @plugin=RemapPlugin.so
{noformat}

{noformat}
$ lldb /path/to/traffic_server
...
(lldb) r
...
(lldb) bt
...
* thread #7: tid = 0x3ce4eef, 0x7fff886d0f06 
libsystem_kernel.dylib`__pthread_kill + 10, name = '[ET_NET 4]', stop reason = 
signal SIGABRT
  * frame #0: 0x7fff886d0f06 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x7fff91d6b4ec libsystem_pthread.dylib`pthread_kill + 90
frame #2: 0x7fff902b56df libsystem_c.dylib`abort + 129
frame #3: 0x00039799 
libtsutil.7.dylib`ink_abort(message_format="%s:%d: failed assertion `%s`") + 
361 at ink_error.cc:79
frame #4: 0x0003703f 
libtsutil.7.dylib`::_ink_assert(expression="arg_idx >= 0 && arg_idx < 
HTTP_SSN_TXN_MAX_USER_ARG", file="InkAPI.cc", line=5881) + 47 at 
ink_assert.cc:37
frame #5: 0x0001000446c3 
traffic_server`::_TSReleaseAssert(text="arg_idx >= 0 && arg_idx < 
HTTP_SSN_TXN_MAX_USER_ARG", file="InkAPI.cc", line=5881) + 35 at InkAPI.cc:396
frame #6: 0x000100054e0f 
traffic_server`::TSHttpTxnArgGet(txnp=0x05d6b200, arg_idx=-1) + 111 at 
InkAPI.cc:5881
frame #7: 0x0579bb9b 
libatscppapi.7.dylib`atscppapi::utils::internal::getTransaction(ats_txn_handle=0x05d6b200)
 + 27 at utils_internal.cc:159
frame #8: 0x057bba8c 
libatscppapi.7.dylib`::TSRemapDoRemap(ih=0x00759fe0, 
rh=0x05d6b200, rri=0x7058df08) + 108 at RemapPlugin.cc:35
frame #9: 0x0001001cb79e 
traffic_server`RemapPlugins::run_plugin(this=0x7058e0e8, 
plugin=0x00759f90) + 350 at RemapPlugins.cc:75
frame #10: 0x0001001cb9c3 
traffic_server`RemapPlugins::run_single_remap(this=0x7058e0e8) + 435 at 
RemapPlugins.cc:111
...
{noformat}

Second, Remap Plugin remains an another issue if we simply revert 
https://github.com/apache/trafficserver/commit/17fdb2fd7dc47d09f8c8d7f9b6ff27b035c00d85.
 Objects of atscppapi::Transaction is created correctly at utils_internal.cc, 
but its destructor is never called.

{noformat}
# Revert and rebuild ATS
$ git revert 17fdb2fd7dc47d09f8c8d7f9b6ff27b035c00d85 --no-commit
...
$ make && make install
{noformat}

{noformat}
$ lldb /path/to/traffic_server
...
(lldb) r
...
# It can pass the assertion! but ...

(lldb) b -M ~Transaction
(lldb) r
# atscppapi::Transaction::~Transaction() is not called.
{noformat}

  was:
Current atscppapi::RemapPlugin has two issues. These seem to be caused by 
missing utils::internal::initTransactionManagement() call.

First, after TS-4555, plugins uses RemapPlugin class doesn't work because it 
can't pass an assertion.

{noformat}
# my remap.config. It uses RemapPlugin, one of atscppapi examples.
map / http://127.0.0.1:80/ @plugin=RemapPlugin.so
{noformat}

{noformat}
$ lldb /path/to/traffic_server
...
(lldb) r
...
(lldb) bt
...
* thread #7: tid = 0x3ce4eef, 0x7fff886d0f06 
libsystem_kernel.dylib`__pthread_kill + 10, name = '[ET_NET 4]', stop reason = 
signal SIGABRT
  * frame #0: 0x7fff886d0f06 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x7fff91d6b4ec libsystem_pthread.dylib`pthread_kill + 90
frame #2: 0x7fff902b56df libsystem_c.dylib`abort + 129
frame #3: 0x00039799 
libtsutil.7.dylib`ink_abort(message_format="%s:%d: failed assertion `%s`") + 
361 at ink_error.cc:79
frame #4: 0x0003703f 
libtsutil.7.dylib`::_ink_assert(expression="arg_idx >= 0 && arg_idx < 
HTTP_SSN_TXN_MAX_USER_ARG", file="InkAPI.cc", line=5881) + 47 at 
ink_assert.cc:37
frame #5: 0x0001000446c3 
traffic_server`::_TSReleaseAssert(text="arg_idx >= 0 && arg_idx < 
HTTP_SSN_TXN_MAX_USER_ARG", file="InkAPI.cc", line=5881) + 35 at InkAPI.cc:396
frame #6: 0x000100054e0f 
traffic_server`::TSHttpTxnArgGet(txnp=0x05d6b200, arg_idx=-1) + 111 at 
InkAPI.cc:5881
frame #7: 0x0579bb9b 
libatscppapi.7.dylib`atscppapi::utils::internal::getTransaction(ats_txn_handle=0x05d6b200)
 + 27 at utils_internal.cc:159
frame #8: 0x057bba8c 
libatscppapi.7.dylib`::TSRemapDoRemap(ih=0x00759fe0, 
rh=0x05d6b200, rri=0x7058df08) + 108 at RemapPlugin.cc:35
frame #9: 0x0001001cb79e 
traffic_server`RemapPlugins::run_plugin(this=0x7058e0e8, 
plugin=0x00759f90) + 350 at RemapPlugins.cc:75
frame #10: 0x0001001cb9c3 
traffic_server`RemapPlugins::run_single_remap(this=0x7058e0e8) + 435 at 
RemapPlugins.cc:111
...
{noformat}

Second, Remap 

[jira] [Created] (TS-4880) RemapPlugin class doesn't work correctly

2016-09-19 Thread Ryo Okubo (JIRA)
Ryo Okubo created TS-4880:
-

 Summary: RemapPlugin class doesn't work correctly
 Key: TS-4880
 URL: https://issues.apache.org/jira/browse/TS-4880
 Project: Traffic Server
  Issue Type: Bug
  Components: CPP API
Reporter: Ryo Okubo
Assignee: Brian Geffon


Current atscppapi::RemapPlugin has two issues. These seem to be caused by 
missing utils::internal::initTransactionManagement() call.

First, after TS-4555, plugins uses RemapPlugin class doesn't work because it 
can't pass an assertion.

{noformat}
# my remap.config. It uses RemapPlugin, one of atscppapi examples.
map / http://127.0.0.1:80/ @plugin=RemapPlugin.so
{noformat}

{noformat}
$ lldb /path/to/traffic_server
...
(lldb) r
...
(lldb) bt
...
* thread #7: tid = 0x3ce4eef, 0x7fff886d0f06 
libsystem_kernel.dylib`__pthread_kill + 10, name = '[ET_NET 4]', stop reason = 
signal SIGABRT
  * frame #0: 0x7fff886d0f06 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x7fff91d6b4ec libsystem_pthread.dylib`pthread_kill + 90
frame #2: 0x7fff902b56df libsystem_c.dylib`abort + 129
frame #3: 0x00039799 
libtsutil.7.dylib`ink_abort(message_format="%s:%d: failed assertion `%s`") + 
361 at ink_error.cc:79
frame #4: 0x0003703f 
libtsutil.7.dylib`::_ink_assert(expression="arg_idx >= 0 && arg_idx < 
HTTP_SSN_TXN_MAX_USER_ARG", file="InkAPI.cc", line=5881) + 47 at 
ink_assert.cc:37
frame #5: 0x0001000446c3 
traffic_server`::_TSReleaseAssert(text="arg_idx >= 0 && arg_idx < 
HTTP_SSN_TXN_MAX_USER_ARG", file="InkAPI.cc", line=5881) + 35 at InkAPI.cc:396
frame #6: 0x000100054e0f 
traffic_server`::TSHttpTxnArgGet(txnp=0x05d6b200, arg_idx=-1) + 111 at 
InkAPI.cc:5881
frame #7: 0x0579bb9b 
libatscppapi.7.dylib`atscppapi::utils::internal::getTransaction(ats_txn_handle=0x05d6b200)
 + 27 at utils_internal.cc:159
frame #8: 0x057bba8c 
libatscppapi.7.dylib`::TSRemapDoRemap(ih=0x00759fe0, 
rh=0x05d6b200, rri=0x7058df08) + 108 at RemapPlugin.cc:35
frame #9: 0x0001001cb79e 
traffic_server`RemapPlugins::run_plugin(this=0x7058e0e8, 
plugin=0x00759f90) + 350 at RemapPlugins.cc:75
frame #10: 0x0001001cb9c3 
traffic_server`RemapPlugins::run_single_remap(this=0x7058e0e8) + 435 at 
RemapPlugins.cc:111
...
{noformat}

Second, Remap Plugin remains an another issue if we simply revert 
https://github.com/apache/trafficserver/commit/17fdb2fd7dc47d09f8c8d7f9b6ff27b035c00d85.
 Objects of atscppapi::Transaction is created correctly at utils_internal.cc, 
but its destructor is never called.

{noformat}
# Revert and rebuild ATS
$ git revert 17fdb2fd7dc47d09f8c8d7f9b6ff27b035c00d85 --no-commit
...
$ make && make install
{noformat}

{noformat}
$ lldb /path/to/traffic_server
...
(lldb) r
...
# It can pass the assertion! but ...

(lldb) b -M ~Transaction
(lldb) r
# atscppapi::Transaction::~Transaction() is called.
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3498) h2c (upgrade dance) seems to hang

2016-04-14 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15240681#comment-15240681
 ] 

Ryo Okubo commented on TS-3498:
---

[~zwoop] I agree with your suggestion because major browsers don't support h2c 
upgrading. We should remove h2c support.

> h2c (upgrade dance) seems to hang
> -
>
> Key: TS-3498
> URL: https://issues.apache.org/jira/browse/TS-3498
> Project: Traffic Server
>  Issue Type: Bug
>  Components: HTTP/2
>Reporter: Leif Hedstrom
>Assignee: Ryo Okubo
> Fix For: sometime
>
>
> I see
> {code}
> loki (09:37) 259/0 $ nghttp -v -u http://docs.trafficserver.apache.org
> [  0.031] Connected
> [  0.031] HTTP Upgrade request
> GET / HTTP/1.1
> Host: docs.trafficserver.apache.org
> Connection: Upgrade, HTTP2-Settings
> Upgrade: h2c-14
> HTTP2-Settings: AAMAAABkAAQAAP__
> Accept: */*
> User-Agent: nghttp2/0.7.4-DEV
> [  0.066] HTTP Upgrade response
> HTTP/1.1 101 Switching Protocols
> Date: Sun, 05 Apr 2015 15:37:58 GMT
> Connection: Upgrade
> Via: http/1.1 ATS (ApacheTrafficServer/5.3.0 [c s f ])
> Server: ATS/5.3.0
> Upgrade: h2c-14
> [  0.066] HTTP Upgrade success
> [  0.066] recv SETTINGS frame 

[jira] [Created] (TS-4087) H2 flexible resource limitation

2015-12-17 Thread Ryo Okubo (JIRA)
Ryo Okubo created TS-4087:
-

 Summary: H2 flexible resource limitation
 Key: TS-4087
 URL: https://issues.apache.org/jira/browse/TS-4087
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo


Current H2 implementation depends on FetchSM and PluginVC to forward requests. 
But their memory footprint is very high. It may be vulnerable to DoS attack.
As simple ways to avoid the problem, we can use two limitations, 
_proxy.config.net.connections_throttle_ and 
_proxy.config.http2.max_concurrent_streams_in_. But reducing number of 
_proxy.config.net.connections_throttle_ causes that number of acceptable 
HTTP/1.1 requests become lower. And reducing 
_proxy.config.http2.max_concurrent_streams_in_ restricts benefits of H2.

I'd like to propose more flexible resource limitation for current H2 impl based 
on number of active H2 streams. Its adding an upper limit of active H2 streams. 
If tis exceeded, ATS send low number of SETTINGS_MAX_CONCURRENT_STREAMS to 
clients and/or RST_STREAM frame.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3478) Indexing header representations on HPACK encoder

2015-12-17 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15063244#comment-15063244
 ] 

Ryo Okubo commented on TS-3478:
---

I've done almost of fixing conflict and I'll create a PR soon. If its no 
problem, I'd like to land it for 6.1.0.

> Indexing header representations on HPACK encoder
> 
>
> Key: TS-3478
> URL: https://issues.apache.org/jira/browse/TS-3478
> Project: Traffic Server
>  Issue Type: Improvement
>  Components: HTTP/2
>Reporter: Ryo Okubo
>Assignee: Ryo Okubo
>  Labels: review
> Fix For: 6.1.0
>
> Attachments: indexing.patch
>
>
> Support other header field representations on HPACK encoder.
> http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-12#section-6
> Currently the encoder supports only [Literal Header Field never 
> Indexed|http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-12#section-6.2.3].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3819) H2 error logging

2015-08-30 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3819?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3819:
--
Attachment: h2_errorlog_0004.patch

Fix conflict based on current master branch.
[~zwoop] please check {{h2_errorlog_0004.patch}}

 H2 error logging
 

 Key: TS-3819
 URL: https://issues.apache.org/jira/browse/TS-3819
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: Leif Hedstrom
 Fix For: 6.1.0

 Attachments: h2_errorlog_0001.patch, h2_errorlog_0002.patch, 
 h2_errorlog_0003.patch, h2_errorlog_0004.patch


 RST_STREAM and GOAWAY may deliver [various 
 errors|https://tools.ietf.org/html/rfc7540#section-7]. I want to record them 
 to error.log 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3860) Buffer overflow in H2 on debug build

2015-08-26 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3860?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3860:
--
Attachment: ts-3860-02.patch

Fixed types of argumets passed to {{mime_field_name_value_set()}}
[~bcall] please check a new patch.

 Buffer overflow in H2 on debug build
 

 Key: TS-3860
 URL: https://issues.apache.org/jira/browse/TS-3860
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Leif Hedstrom
Assignee: Ryo Okubo
  Labels: yahoo
 Fix For: 6.1.0

 Attachments: ts-3860-01.patch, ts-3860-02.patch


 {code}
 ==15480==ERROR: AddressSanitizer: global-buffer-overflow on address 
 0x00acafe8 at pc 0x7f13fa bp 0x7ff13b8e3ee0 sp 0x7ff13b8e3ed8
 READ of size 1 at 0x00acafe8 thread T8 ([ET_NET 7])
 #0 0x7f13f9 in checksum_block(char const*, int) 
 /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:530
 #1 0x7f167f in mime_hdr_sanity_check(MIMEHdrImpl*) 
 /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:560
 #2 0x7f5d6d in mime_hdr_field_attach(MIMEHdrImpl*, MIMEField*, int, 
 MIMEField*) /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:1533
 #3 0x6fd29a in http2_write_psuedo_headers(HTTPHdr*, unsigned char*, 
 unsigned long, Http2DynamicTable) 
 /usr/local/src/trafficserver/proxy/http2/HTTP2.cc:560
 #4 0x710ecd in Http2ConnectionState::send_headers_frame(FetchSM*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ConnectionState.cc:966
 #5 0x70f906 in Http2ConnectionState::main_event_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ConnectionState.cc:768
 #6 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #7 0x704fe9 in send_connection_event 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:60
 #8 0x707176 in Http2ClientSession::main_event_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:259
 #9 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #10 0x52bd6a in FetchSM::InvokePluginExt(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:260
 #11 0x52d6e6 in FetchSM::process_fetch_read(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:456
 #12 0x52df4a in FetchSM::fetch_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:518
 #13 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #14 0x5abc09 in PluginVC::process_read_side(bool) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:663
 #15 0x5aa834 in PluginVC::process_write_side(bool) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:555
 #16 0x5a74dc in PluginVC::main_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:208
 #17 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #18 0xa23154 in EThread::process_event(Event*, int) 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:128
 #19 0xa236f7 in EThread::execute() 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:179
 #20 0xa21662 in spawn_thread_internal 
 /usr/local/src/trafficserver/iocore/eventsystem/Thread.cc:86
 #21 0x7ff143381df4 in start_thread (/lib64/libpthread.so.0+0x7df4)
 #22 0x7ff1426291ac in __clone (/lib64/libc.so.6+0xf61ac)
 0x00acafe8 is located 0 bytes to the right of global variable '*.LC7' 
 from 'HPACK.cc' (0xacafe0) of size 8
   '*.LC7' is ascii string ':status'
 SUMMARY: AddressSanitizer: global-buffer-overflow 
 /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:530 checksum_block(char 
 const*, int)
 Shadow bytes around the buggy address:
   0x801515a0: 04 f9 f9 f9 f9 f9 f9 f9 00 00 00 00 00 00 00 00
   0x801515b0: 01 f9 f9 f9 f9 f9 f9 f9 01 f9 f9 f9 f9 f9 f9 f9
   0x801515c0: 01 f9 f9 f9 f9 f9 f9 f9 00 00 00 04 f9 f9 f9 f9
   0x801515d0: 00 00 05 f9 f9 f9 f9 f9 00 00 00 00 00 f9 f9 f9
   0x801515e0: f9 f9 f9 f9 00 f9 f9 f9 f9 f9 f9 f9 00 03 f9 f9
 =0x801515f0: f9 f9 f9 f9 06 f9 f9 f9 f9 f9 f9 f9 00[f9]f9 f9
   0x80151600: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
   0x80151610: 00 00 00 00 00 00 00 00 00 00 00 00 00 01 f9 f9
   0x80151620: f9 f9 f9 f9 00 00 06 f9 f9 f9 f9 f9 00 00 00 00
   0x80151630: 00 00 00 05 f9 f9 f9 f9 00 00 00 00 00 00 00 00
   0x80151640: 00 00 03 f9 f9 f9 f9 f9 00 00 00 02 f9 f9 f9 f9
 Shadow byte legend (one shadow byte represents 8 application bytes):
   Addressable:   00
   Partially addressable: 01 02 03 04 05 06 07
   Heap left redzone:   fa
   Heap right redzone:  fb
   Freed heap region:   fd
   Stack left redzone:  f1

[jira] [Commented] (TS-3860) Buffer overflow in H2 on debug build

2015-08-25 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3860?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14710764#comment-14710764
 ] 

Ryo Okubo commented on TS-3860:
---

[~bcall] [~zwoop] I think adding a new flag would confuse ... as an other 
approach, I post a patch that disables {{n_v_raw_printable}} flag. Can you try 
it?

 Buffer overflow in H2 on debug build
 

 Key: TS-3860
 URL: https://issues.apache.org/jira/browse/TS-3860
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Leif Hedstrom
Assignee: Ryo Okubo
  Labels: yahoo
 Fix For: 6.1.0

 Attachments: ts-3860-01.patch


 {code}
 ==15480==ERROR: AddressSanitizer: global-buffer-overflow on address 
 0x00acafe8 at pc 0x7f13fa bp 0x7ff13b8e3ee0 sp 0x7ff13b8e3ed8
 READ of size 1 at 0x00acafe8 thread T8 ([ET_NET 7])
 #0 0x7f13f9 in checksum_block(char const*, int) 
 /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:530
 #1 0x7f167f in mime_hdr_sanity_check(MIMEHdrImpl*) 
 /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:560
 #2 0x7f5d6d in mime_hdr_field_attach(MIMEHdrImpl*, MIMEField*, int, 
 MIMEField*) /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:1533
 #3 0x6fd29a in http2_write_psuedo_headers(HTTPHdr*, unsigned char*, 
 unsigned long, Http2DynamicTable) 
 /usr/local/src/trafficserver/proxy/http2/HTTP2.cc:560
 #4 0x710ecd in Http2ConnectionState::send_headers_frame(FetchSM*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ConnectionState.cc:966
 #5 0x70f906 in Http2ConnectionState::main_event_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ConnectionState.cc:768
 #6 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #7 0x704fe9 in send_connection_event 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:60
 #8 0x707176 in Http2ClientSession::main_event_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:259
 #9 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #10 0x52bd6a in FetchSM::InvokePluginExt(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:260
 #11 0x52d6e6 in FetchSM::process_fetch_read(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:456
 #12 0x52df4a in FetchSM::fetch_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:518
 #13 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #14 0x5abc09 in PluginVC::process_read_side(bool) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:663
 #15 0x5aa834 in PluginVC::process_write_side(bool) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:555
 #16 0x5a74dc in PluginVC::main_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:208
 #17 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #18 0xa23154 in EThread::process_event(Event*, int) 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:128
 #19 0xa236f7 in EThread::execute() 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:179
 #20 0xa21662 in spawn_thread_internal 
 /usr/local/src/trafficserver/iocore/eventsystem/Thread.cc:86
 #21 0x7ff143381df4 in start_thread (/lib64/libpthread.so.0+0x7df4)
 #22 0x7ff1426291ac in __clone (/lib64/libc.so.6+0xf61ac)
 0x00acafe8 is located 0 bytes to the right of global variable '*.LC7' 
 from 'HPACK.cc' (0xacafe0) of size 8
   '*.LC7' is ascii string ':status'
 SUMMARY: AddressSanitizer: global-buffer-overflow 
 /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:530 checksum_block(char 
 const*, int)
 Shadow bytes around the buggy address:
   0x801515a0: 04 f9 f9 f9 f9 f9 f9 f9 00 00 00 00 00 00 00 00
   0x801515b0: 01 f9 f9 f9 f9 f9 f9 f9 01 f9 f9 f9 f9 f9 f9 f9
   0x801515c0: 01 f9 f9 f9 f9 f9 f9 f9 00 00 00 04 f9 f9 f9 f9
   0x801515d0: 00 00 05 f9 f9 f9 f9 f9 00 00 00 00 00 f9 f9 f9
   0x801515e0: f9 f9 f9 f9 00 f9 f9 f9 f9 f9 f9 f9 00 03 f9 f9
 =0x801515f0: f9 f9 f9 f9 06 f9 f9 f9 f9 f9 f9 f9 00[f9]f9 f9
   0x80151600: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
   0x80151610: 00 00 00 00 00 00 00 00 00 00 00 00 00 01 f9 f9
   0x80151620: f9 f9 f9 f9 00 00 06 f9 f9 f9 f9 f9 00 00 00 00
   0x80151630: 00 00 00 05 f9 f9 f9 f9 00 00 00 00 00 00 00 00
   0x80151640: 00 00 03 f9 f9 f9 f9 f9 00 00 00 02 f9 f9 f9 f9
 Shadow byte legend (one shadow byte represents 8 application bytes):
   Addressable:   00
   Partially addressable: 01 02 03 04 05 06 07
   Heap left redzone:   fa
   Heap right redzone:  

[jira] [Updated] (TS-3860) Buffer overflow in H2 on debug build

2015-08-25 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3860?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3860:
--
Attachment: ts-3860-01.patch

When {{n_v_raw_printable}} flag is true, a pair of header field name and value 
seems to be regarded as they're arranged on consecutive addresses. Its not in 
{{http2_write_psuedo_headers()}} so {{mime_field_name_value_set()}} should be 
called with false as {{n_v_raw_printable}}.

 Buffer overflow in H2 on debug build
 

 Key: TS-3860
 URL: https://issues.apache.org/jira/browse/TS-3860
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Leif Hedstrom
Assignee: Ryo Okubo
  Labels: yahoo
 Fix For: 6.1.0

 Attachments: ts-3860-01.patch


 {code}
 ==15480==ERROR: AddressSanitizer: global-buffer-overflow on address 
 0x00acafe8 at pc 0x7f13fa bp 0x7ff13b8e3ee0 sp 0x7ff13b8e3ed8
 READ of size 1 at 0x00acafe8 thread T8 ([ET_NET 7])
 #0 0x7f13f9 in checksum_block(char const*, int) 
 /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:530
 #1 0x7f167f in mime_hdr_sanity_check(MIMEHdrImpl*) 
 /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:560
 #2 0x7f5d6d in mime_hdr_field_attach(MIMEHdrImpl*, MIMEField*, int, 
 MIMEField*) /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:1533
 #3 0x6fd29a in http2_write_psuedo_headers(HTTPHdr*, unsigned char*, 
 unsigned long, Http2DynamicTable) 
 /usr/local/src/trafficserver/proxy/http2/HTTP2.cc:560
 #4 0x710ecd in Http2ConnectionState::send_headers_frame(FetchSM*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ConnectionState.cc:966
 #5 0x70f906 in Http2ConnectionState::main_event_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ConnectionState.cc:768
 #6 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #7 0x704fe9 in send_connection_event 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:60
 #8 0x707176 in Http2ClientSession::main_event_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:259
 #9 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #10 0x52bd6a in FetchSM::InvokePluginExt(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:260
 #11 0x52d6e6 in FetchSM::process_fetch_read(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:456
 #12 0x52df4a in FetchSM::fetch_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:518
 #13 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #14 0x5abc09 in PluginVC::process_read_side(bool) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:663
 #15 0x5aa834 in PluginVC::process_write_side(bool) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:555
 #16 0x5a74dc in PluginVC::main_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:208
 #17 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #18 0xa23154 in EThread::process_event(Event*, int) 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:128
 #19 0xa236f7 in EThread::execute() 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:179
 #20 0xa21662 in spawn_thread_internal 
 /usr/local/src/trafficserver/iocore/eventsystem/Thread.cc:86
 #21 0x7ff143381df4 in start_thread (/lib64/libpthread.so.0+0x7df4)
 #22 0x7ff1426291ac in __clone (/lib64/libc.so.6+0xf61ac)
 0x00acafe8 is located 0 bytes to the right of global variable '*.LC7' 
 from 'HPACK.cc' (0xacafe0) of size 8
   '*.LC7' is ascii string ':status'
 SUMMARY: AddressSanitizer: global-buffer-overflow 
 /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:530 checksum_block(char 
 const*, int)
 Shadow bytes around the buggy address:
   0x801515a0: 04 f9 f9 f9 f9 f9 f9 f9 00 00 00 00 00 00 00 00
   0x801515b0: 01 f9 f9 f9 f9 f9 f9 f9 01 f9 f9 f9 f9 f9 f9 f9
   0x801515c0: 01 f9 f9 f9 f9 f9 f9 f9 00 00 00 04 f9 f9 f9 f9
   0x801515d0: 00 00 05 f9 f9 f9 f9 f9 00 00 00 00 00 f9 f9 f9
   0x801515e0: f9 f9 f9 f9 00 f9 f9 f9 f9 f9 f9 f9 00 03 f9 f9
 =0x801515f0: f9 f9 f9 f9 06 f9 f9 f9 f9 f9 f9 f9 00[f9]f9 f9
   0x80151600: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
   0x80151610: 00 00 00 00 00 00 00 00 00 00 00 00 00 01 f9 f9
   0x80151620: f9 f9 f9 f9 00 00 06 f9 f9 f9 f9 f9 00 00 00 00
   0x80151630: 00 00 00 05 f9 f9 f9 f9 00 00 00 00 00 00 00 00
   0x80151640: 00 00 03 f9 f9 f9 f9 f9 00 00 00 02 f9 f9 f9 f9
 Shadow byte legend (one shadow byte represents 8 application bytes):
   Addressable:   00
   

[jira] [Commented] (TS-3860) Buffer overflow in H2 on debug build

2015-08-20 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3860?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14706100#comment-14706100
 ] 

Ryo Okubo commented on TS-3860:
---

We've just catched the same issue. It may occur when you build with 
--enable-debug option.

Its caused by calling mime_field_name_value_set() without must_copy_strings 
flag. Current HPACK encoder passes char* variables refering to separated 
address as header field name/value.
https://github.com/apache/trafficserver/blob/master/proxy/http2/HTTP2.cc#L558-L559

But mime_hdr_sanity_check() seems to suppose header field name/value are put on 
consecutive address.
https://github.com/apache/trafficserver/blob/master/proxy/hdrs/MIME.cc#L559-L560

I have a basic question ... should header field name/value stored at HdrHeap 
are put on consecutive address? If so, we should modify to call 
mime_field_name_value_set() with must_copy_strings.

 Buffer overflow in H2 on debug build
 

 Key: TS-3860
 URL: https://issues.apache.org/jira/browse/TS-3860
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Leif Hedstrom
  Labels: yahoo
 Fix For: 6.1.0


 {code}
 ==15480==ERROR: AddressSanitizer: global-buffer-overflow on address 
 0x00acafe8 at pc 0x7f13fa bp 0x7ff13b8e3ee0 sp 0x7ff13b8e3ed8
 READ of size 1 at 0x00acafe8 thread T8 ([ET_NET 7])
 #0 0x7f13f9 in checksum_block(char const*, int) 
 /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:530
 #1 0x7f167f in mime_hdr_sanity_check(MIMEHdrImpl*) 
 /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:560
 #2 0x7f5d6d in mime_hdr_field_attach(MIMEHdrImpl*, MIMEField*, int, 
 MIMEField*) /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:1533
 #3 0x6fd29a in http2_write_psuedo_headers(HTTPHdr*, unsigned char*, 
 unsigned long, Http2DynamicTable) 
 /usr/local/src/trafficserver/proxy/http2/HTTP2.cc:560
 #4 0x710ecd in Http2ConnectionState::send_headers_frame(FetchSM*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ConnectionState.cc:966
 #5 0x70f906 in Http2ConnectionState::main_event_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ConnectionState.cc:768
 #6 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #7 0x704fe9 in send_connection_event 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:60
 #8 0x707176 in Http2ClientSession::main_event_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:259
 #9 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #10 0x52bd6a in FetchSM::InvokePluginExt(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:260
 #11 0x52d6e6 in FetchSM::process_fetch_read(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:456
 #12 0x52df4a in FetchSM::fetch_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:518
 #13 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #14 0x5abc09 in PluginVC::process_read_side(bool) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:663
 #15 0x5aa834 in PluginVC::process_write_side(bool) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:555
 #16 0x5a74dc in PluginVC::main_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:208
 #17 0x53075a in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #18 0xa23154 in EThread::process_event(Event*, int) 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:128
 #19 0xa236f7 in EThread::execute() 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:179
 #20 0xa21662 in spawn_thread_internal 
 /usr/local/src/trafficserver/iocore/eventsystem/Thread.cc:86
 #21 0x7ff143381df4 in start_thread (/lib64/libpthread.so.0+0x7df4)
 #22 0x7ff1426291ac in __clone (/lib64/libc.so.6+0xf61ac)
 0x00acafe8 is located 0 bytes to the right of global variable '*.LC7' 
 from 'HPACK.cc' (0xacafe0) of size 8
   '*.LC7' is ascii string ':status'
 SUMMARY: AddressSanitizer: global-buffer-overflow 
 /usr/local/src/trafficserver/proxy/hdrs/MIME.cc:530 checksum_block(char 
 const*, int)
 Shadow bytes around the buggy address:
   0x801515a0: 04 f9 f9 f9 f9 f9 f9 f9 00 00 00 00 00 00 00 00
   0x801515b0: 01 f9 f9 f9 f9 f9 f9 f9 01 f9 f9 f9 f9 f9 f9 f9
   0x801515c0: 01 f9 f9 f9 f9 f9 f9 f9 00 00 00 04 f9 f9 f9 f9
   0x801515d0: 00 00 05 f9 f9 f9 f9 f9 00 00 00 00 00 f9 f9 f9
   0x801515e0: f9 f9 f9 f9 00 f9 f9 f9 f9 f9 f9 f9 00 03 f9 f9
 =0x801515f0: f9 f9 f9 f9 06 f9 f9 f9 f9 f9 f9 f9 00[f9]f9 f9
   0x80151600: f9 f9 f9 

[jira] [Commented] (TS-3808) ☂ Testing HTTP/2 features by h2spec

2015-08-12 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14693089#comment-14693089
 ] 

Ryo Okubo commented on TS-3808:
---

TS-3834 covers 5.4.1. Connection Error Handling

  ☂ Testing HTTP/2 features by h2spec
 

 Key: TS-3808
 URL: https://issues.apache.org/jira/browse/TS-3808
 Project: Traffic Server
  Issue Type: Test
  Components: HTTP/2
Reporter: Masaori Koshiba
  Labels: Umbrella
 Fix For: 6.1.0


 This is an umbrella ticket for testing HTTP/2 features of ATS by 
 [h2spec|https://github.com/summerwind/h2spec].
 Goal : pass all tests.
 h3. Status
 * ATS : {{35f11dd5aab06364547d423e26b3d5bc31c4b1e1}}
 * h2spec : {{v1.1.1}}
 * 68 tests, 48 passed, 1 skipped, 19 failed
 h4. Details
 * 3.5. HTTP/2 Connection Preface
 ** ✓ Sends invalid connection preface
 * 4.2. Frame Size
 ** ✓ Sends large size frame that exceeds the SETTINGS_MAX_FRAME_SIZE
 * 4.3. Header Compression and Decompression
 ** ✓ Sends invalid header block fragment
 * 5.1. Stream States 
 ** ✓ idle: Sends a DATA frame
 ** × idle: Sends a RST_STREAM frame
 ** × idle: Sends a WINDOW_UPDATE frame
 ** ✓ idle: Sends a CONTINUATION frame
 ** ✓ half closed (remote): Sends a DATA frame
 ** × half closed (remote): Sends a HEADERS frame
 ** ✓ half closed (remote): Sends a CONTINUATION frame
 ** × closed: Sends a CONTINUATION frame
 ** 5.1.1. Stream Identifiers
 *** ✓ Sends even-numbered stream identifier
 ** 5.1.2. Stream Concurrency
 *** Skipped: SETTINGS_MAX_CONCURRENT_STREAMS is unlimited
 * 5.3. Stream Priority
 ** 5.3.1. Stream Dependencies
 *** × Sends HEADERS frame that depend on itself
 *** ✓ Sends PRIORITY frame that depend on itself
 * 5.4. Error Handling
 ** 5.4.1. Connection Error Handling
 *** × Receives a GOAWAY frame
 * 5.5. Extending HTTP/2
 ** ✓ Sends an unknown extension frame
 ** × Sends an unknown extension frame in the middle of a header block
 * 6.1. DATA
 ** ✓ Sends a DATA frame with 0x0 stream identifier
 ** ✓ Sends a DATA frame on the stream that is not opend
 ** ✓ Sends a DATA frame with invalid pad length
 * 6.2. HEADERS
 ** ✓ Sends a HEADERS frame followed by any frame other than CONTINUATION
 ** ✓ Sends a HEADERS frame followed by a frame on a different stream
 ** ✓ Sends a HEADERS frame with 0x0 stream identifier
 ** ✓ Sends a HEADERS frame with invalid pad length
 * 6.3. PRIORITY
 ** ✓ Sends a PRIORITY frame with 0x0 stream identifier
 ** ✓ Sends a PRIORITY frame with a length other than 5 octets
 * 6.4. RST_STREAM
 ** ✓ Sends a RST_STREAM frame with 0x0 stream identifier
 ** × Sends a RST_STREAM frame on a idle stream
 ** ✓ Sends a RST_STREAM frame with a length other than 4 octets
 * 6.5. SETTINGS
 ** ✓ Sends a SETTINGS frame
 ** ✓ Sends a SETTINGS frame that is not a zero-length with ACK flag
 ** ✓ Sends a SETTINGS frame with the stream identifier that is not 0x0
 ** × Sends a SETTINGS frame with a length other than a multiple of 6 octets
 ** 6.5.2. Defined SETTINGS Parameters
 *** ✓ SETTINGS_ENABLE_PUSH (0x2): Sends the value other than 0 or 1
 *** ✓ SETTINGS_INITIAL_WINDOW_SIZE (0x4): Sends the value above the maximum 
 flow control window size
 *** ✓ SETTINGS_MAX_FRAME_SIZE (0x5): Sends the value below the initial value
 *** ✓ SETTINGS_MAX_FRAME_SIZE (0x5): Sends the value above the maximum 
 allowed frame size
 * 6.7. PING
 ** ✓ Sends a PING frame
 ** ✓ Sends a PING frame with the stream identifier that is not 0x0
 ** ✓ Sends a PING frame with a length field value other than 8
 * 6.8. GOAWAY
 ** ✓ Sends a GOAWAY frame with the stream identifier that is not 0x0
 * 6.9. WINDOW_UPDATE
 ** ✓ Sends a WINDOW_UPDATE frame
 ** ✓ Sends a WINDOW_UPDATE frame with an flow control window increment of 0
 ** ✓ Sends a WINDOW_UPDATE frame with an flow control window increment of 0 
 on a stream
 ** ✓ Sends a WINDOW_UPDATE frame with a length other than a multiple of 4 
 octets
 ** 6.9.1. The Flow Control Window
 *** × Sends multiple WINDOW_UPDATE frames on a connection increasing the flow 
 control window to above 2^31-1
 *** × Sends multiple WINDOW_UPDATE frames on a stream increasing the flow 
 control window to above 2^31-1
 ** 6.9.2. Initial Flow Control Window Size
 *** ✓ Sends a SETTINGS_INITIAL_WINDOW_SIZE settings with an exceeded maximum 
 window size value
 * 6.10. CONTINUATION
 ** × Sends a CONTINUATION frame
 ** × Sends multiple CONTINUATION frames
 ** × Sends a CONTINUATION frame followed by any frame other than CONTINUATION
 ** × Sends a CONTINUATION frame followed by a frame on a different stream
 ** × Sends a CONTINUATION frame with the stream identifier that is 0x0
 ** ✓ Sends a CONTINUATION frame after the frame other than HEADERS, 
 PUSH_PROMISE or CONTINUATION
 * 8.1. HTTP Request/Response Exchange
 ** ✓ Sends a HEADERS frame as HEAD request
 ** × Sends a HEADERS frame 

[jira] [Commented] (TS-3834) Close a client session after sending GOAWAY with errors

2015-08-12 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14693087#comment-14693087
 ] 

Ryo Okubo commented on TS-3834:
---

I'm working it now.

 Close a client session after sending GOAWAY with errors
 ---

 Key: TS-3834
 URL: https://issues.apache.org/jira/browse/TS-3834
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Ryo Okubo

 According to [Section 5.4.1 of 
 RFC7540|https://tools.ietf.org/html/rfc7540#section-5.4.1] , after sending 
 with error codes, a server must close TCP connection. Current ATS only sends 
 GOAWAY but doesn't close client session.
 This behavior can be checked by [h2spec|https://github.com/summerwind/h2spec] 
 with -s 5.4.1 option.
 {noformat}
 $ ./h2spec -h host -p port -s 5.4.1
   5.4. Error Handling
 5.4.1. Connection Error Handling
   × Receives a GOAWAY frame
 - After sending the GOAWAY frame, the endpoint MUST close the TCP 
 connection.
   Expected: Connection close
 Actual: Error: Connection closed, but did not receive a GOAWAY 
 Frame.
 68 tests, 0 passed, 67 skipped, 1 failed
 ===
 Failed tests
 ===
   5.4. Error Handling
 5.4.1. Connection Error Handling
   × Receives a GOAWAY frame
 - After sending the GOAWAY frame, the endpoint MUST close the TCP 
 connection.
   Expected: Connection close
 Actual: Error: Connection closed, but did not receive a GOAWAY 
 Frame.
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (TS-3834) Close a client session after sending GOAWAY with errors

2015-08-12 Thread Ryo Okubo (JIRA)
Ryo Okubo created TS-3834:
-

 Summary: Close a client session after sending GOAWAY with errors
 Key: TS-3834
 URL: https://issues.apache.org/jira/browse/TS-3834
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Ryo Okubo


According to [Section 5.4.1 of 
RFC7540|https://tools.ietf.org/html/rfc7540#section-5.4.1] , after sending with 
error codes, a server must close TCP connection. Current ATS only sends GOAWAY 
but doesn't close client session.

This behavior can be checked by [h2spec|https://github.com/summerwind/h2spec] 
with -s 5.4.1 option.
{noformat}
$ ./h2spec -h host -p port -s 5.4.1
  5.4. Error Handling
5.4.1. Connection Error Handling
  × Receives a GOAWAY frame
- After sending the GOAWAY frame, the endpoint MUST close the TCP 
connection.
  Expected: Connection close
Actual: Error: Connection closed, but did not receive a GOAWAY 
Frame.

68 tests, 0 passed, 67 skipped, 1 failed

===
Failed tests
===

  5.4. Error Handling
5.4.1. Connection Error Handling
  × Receives a GOAWAY frame
- After sending the GOAWAY frame, the endpoint MUST close the TCP 
connection.
  Expected: Connection close
Actual: Error: Connection closed, but did not receive a GOAWAY 
Frame.
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3819) H2 error logging

2015-08-06 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3819?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3819:
--
Attachment: h2_errorlog_0003.patch

Regenerated my patch.
[~zwoop] pelase look h2_errorlog_0003.patch

 H2 error logging
 

 Key: TS-3819
 URL: https://issues.apache.org/jira/browse/TS-3819
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
 Fix For: 6.0.0

 Attachments: h2_errorlog_0001.patch, h2_errorlog_0002.patch, 
 h2_errorlog_0003.patch


 RST_STREAM and GOAWAY may deliver [various 
 errors|https://tools.ietf.org/html/rfc7540#section-7]. I want to record them 
 to error.log 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (TS-3819) H2 error logging

2015-08-06 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14661147#comment-14661147
 ] 

Ryo Okubo edited comment on TS-3819 at 8/7/15 1:00 AM:
---

Regenerated my patch.
[~zwoop] please look h2_errorlog_0003.patch


was (Author: rokubo):
Regenerated my patch.
[~zwoop] pelase look h2_errorlog_0003.patch

 H2 error logging
 

 Key: TS-3819
 URL: https://issues.apache.org/jira/browse/TS-3819
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
 Fix For: 6.0.0

 Attachments: h2_errorlog_0001.patch, h2_errorlog_0002.patch, 
 h2_errorlog_0003.patch


 RST_STREAM and GOAWAY may deliver [various 
 errors|https://tools.ietf.org/html/rfc7540#section-7]. I want to record them 
 to error.log 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3819) H2 error logging

2015-08-06 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3819?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3819:
--
Attachment: h2_errorlog_0002.patch

Additinal patch replaces Log::error() with Error() and clang-format's

 H2 error logging
 

 Key: TS-3819
 URL: https://issues.apache.org/jira/browse/TS-3819
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
 Fix For: 6.0.0

 Attachments: h2_errorlog_0001.patch, h2_errorlog_0002.patch


 RST_STREAM and GOAWAY may deliver [various 
 errors|https://tools.ietf.org/html/rfc7540#section-7]. I want to record them 
 to error.log 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3782) Add tests for HTTP/2 in TSQA

2015-08-05 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14655006#comment-14655006
 ] 

Ryo Okubo commented on TS-3782:
---

[~masaori] yes.
[~zwoop] please wait a few days.

 Add tests for HTTP/2 in TSQA
 

 Key: TS-3782
 URL: https://issues.apache.org/jira/browse/TS-3782
 Project: Traffic Server
  Issue Type: Test
  Components: CI, HTTP/2
Reporter: Masaori Koshiba
Assignee: Thomas Jackson
  Labels: review
 Fix For: 6.0.0

 Attachments: exceptional_scenario_tests_001.patch, 
 normal_scenario_tests_001.patch


 Add tests for HTTP/2 in TSQA. IMO, it is better to add two types of tests for 
 HTTP/2 below.
 1. Normal Scenario Tests
   - Do HTTP requests with [hyper|https://github.com/lukasa/hyper] or other 
 HTTP/2 client.
 2. Exceptional Scenario Tests
   - [h2spec|https://github.com/summerwind/h2spec] looks good test tool for 
 edge cases of HTTP/2.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (TS-3819) H2 error logging

2015-08-05 Thread Ryo Okubo (JIRA)
Ryo Okubo created TS-3819:
-

 Summary: H2 error logging
 Key: TS-3819
 URL: https://issues.apache.org/jira/browse/TS-3819
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo


RST_STREAM and GOAWAY may deliver [various 
errors|https://tools.ietf.org/html/rfc7540#section-7]. I want to record them to 
error.log 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3819) H2 error logging

2015-08-05 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3819?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3819:
--
Attachment: h2_errorlog_0001.patch

Logging H2 error codes to error.log if they're not NO_ERROR. In this patch, 
error log example is as below:
{noformat}
20150805.18h51m42s ConnectionError: sent GOAWAY 
(last_stream_id=0,error_code=PROTOCOL_ERROR(1))
20150805.18h51m42s StreamError: sent RST_STREAM 
(stream_id=1,error_code=PROTOCOL_ERROR(1))
20150805.18h51m42s ConnectionError: sent GOAWAY 
(last_stream_id=0,error_code=FRAME_SIZE_ERROR(6))
{noformat}


 H2 error logging
 

 Key: TS-3819
 URL: https://issues.apache.org/jira/browse/TS-3819
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
 Attachments: h2_errorlog_0001.patch


 RST_STREAM and GOAWAY may deliver [various 
 errors|https://tools.ietf.org/html/rfc7540#section-7]. I want to record them 
 to error.log 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3782) Add tests for HTTP/2 in TSQA

2015-08-05 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14659370#comment-14659370
 ] 

Ryo Okubo commented on TS-3782:
---

[~zwoop] no problem. My patch, exceptional_scenario_tests_001.patch hasn't 
merged yet. :) I'll create a new PR on GitHub after modification.

 Add tests for HTTP/2 in TSQA
 

 Key: TS-3782
 URL: https://issues.apache.org/jira/browse/TS-3782
 Project: Traffic Server
  Issue Type: Test
  Components: CI, HTTP/2
Reporter: Masaori Koshiba
Assignee: Thomas Jackson
  Labels: review
 Fix For: 6.0.0

 Attachments: exceptional_scenario_tests_001.patch, 
 normal_scenario_tests_001.patch


 Add tests for HTTP/2 in TSQA. IMO, it is better to add two types of tests for 
 HTTP/2 below.
 1. Normal Scenario Tests
   - Do HTTP requests with [hyper|https://github.com/lukasa/hyper] or other 
 HTTP/2 client.
 2. Exceptional Scenario Tests
   - [h2spec|https://github.com/summerwind/h2spec] looks good test tool for 
 edge cases of HTTP/2.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3819) H2 error logging

2015-08-05 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14659357#comment-14659357
 ] 

Ryo Okubo commented on TS-3819:
---

[~zwoop] I want to land 6.0.0.  Its helpful for debug and operation.

 H2 error logging
 

 Key: TS-3819
 URL: https://issues.apache.org/jira/browse/TS-3819
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
 Fix For: 6.0.0

 Attachments: h2_errorlog_0001.patch


 RST_STREAM and GOAWAY may deliver [various 
 errors|https://tools.ietf.org/html/rfc7540#section-7]. I want to record them 
 to error.log 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3814) Treat requests with Connection header field as malformed

2015-08-04 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3814:
--
Attachment: fixed_sec8_1_2_2.patch

Fixed patch by comparing WKSs.

 Treat requests with Connection header field as malformed
 

 Key: TS-3814
 URL: https://issues.apache.org/jira/browse/TS-3814
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Ryo Okubo
 Fix For: 6.0.0

 Attachments: fixed_sec8_1_2_2.patch, sec8_1_2_2.patch


 According to [Section 8.1.2.2 in 
 RFC7540|https://tools.ietf.org/html/rfc7540#section-8.1.2.2], H2 requests 
 with Connection header field should be treated as malformed. But current ATS 
 passes them.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3814) Treat requests with Connection header field as malformed

2015-08-04 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14654603#comment-14654603
 ] 

Ryo Okubo commented on TS-3814:
---

[~zwoop] The patch on your comment works correctly. I updated my patch based on 
your advice.
I'll try replacing other strcmp()s.

 Treat requests with Connection header field as malformed
 

 Key: TS-3814
 URL: https://issues.apache.org/jira/browse/TS-3814
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Ryo Okubo
 Fix For: 6.0.0

 Attachments: fixed_sec8_1_2_2.patch, sec8_1_2_2.patch


 According to [Section 8.1.2.2 in 
 RFC7540|https://tools.ietf.org/html/rfc7540#section-8.1.2.2], H2 requests 
 with Connection header field should be treated as malformed. But current ATS 
 passes them.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (TS-3814) Treat requests with Connection header field as malformed

2015-08-03 Thread Ryo Okubo (JIRA)
Ryo Okubo created TS-3814:
-

 Summary: Treat requests with Connection header field as malformed
 Key: TS-3814
 URL: https://issues.apache.org/jira/browse/TS-3814
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Ryo Okubo


According to [Section 8.1.2.2 in 
RFC7540|https://tools.ietf.org/html/rfc7540#section-8.1.2.2], H2 requests with 
Connection header field should be treated as malformed. But current ATS passes 
them.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3814) Treat requests with Connection header field as malformed

2015-08-03 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3814:
--
Attachment: sec8_1_2_2.patch

Current ATS removes connection-specific headers simply. This patch removes this 
behavior and treats requests containing Connection header field as malformed.

 Treat requests with Connection header field as malformed
 

 Key: TS-3814
 URL: https://issues.apache.org/jira/browse/TS-3814
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Ryo Okubo
 Attachments: sec8_1_2_2.patch


 According to [Section 8.1.2.2 in 
 RFC7540|https://tools.ietf.org/html/rfc7540#section-8.1.2.2], H2 requests 
 with Connection header field should be treated as malformed. But current ATS 
 passes them.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3478) Indexing header representations on HPACK encoder

2015-07-30 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3478:
--
Summary: Indexing header representations on HPACK encoder  (was: Support 
some header representations on HPACK encoder)

 Indexing header representations on HPACK encoder
 

 Key: TS-3478
 URL: https://issues.apache.org/jira/browse/TS-3478
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: Leif Hedstrom
  Labels: review
 Fix For: 6.0.0

 Attachments: indexing.patch


 Support other header field representations on HPACK encoder.
 http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-12#section-6
 Currently the encoder supports only [Literal Header Field never 
 Indexed|http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-12#section-6.2.3].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3749) Error log isn't recorded

2015-07-30 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14648633#comment-14648633
 ] 

Ryo Okubo commented on TS-3749:
---

Both patches work correctly. Thanks :)
{noformat}
$ tail /var/log/trafficserver/error.log
20150731.10h56m49s RESPONSE: sent 127.0.0.1 status 502 (Cannot find server.) 
for 'http://nonexistent.yahoo.co.jp/'
{noformat}

 Error log isn't recorded
 

 Key: TS-3749
 URL: https://issues.apache.org/jira/browse/TS-3749
 Project: Traffic Server
  Issue Type: Bug
  Components: Logging
Reporter: Ryo Okubo
Assignee: Phil Sorber
Priority: Blocker
 Fix For: 6.0.0


 error.log has not been recorded after TS-1985. Enabling error logging and 
 specifying a format of error.log depended on pre-defined log format but this 
 logic was eliminated on the issue.
 Error logging works fine when  I tried to revert 
 [5c2b032fb9f8f05ae7be1794a3103140ffe7d07e|https://github.com/apache/trafficserver/commit/5c2b032fb9f8f05ae7be1794a3103140ffe7d07e].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3478) Support some header representations on HPACK encoder

2015-07-30 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14648732#comment-14648732
 ] 

Ryo Okubo commented on TS-3478:
---

[~zwoop] I think 6.1.0 is better. This is a optional feature so H2 clients 
maybe don't require it.

 Support some header representations on HPACK encoder
 

 Key: TS-3478
 URL: https://issues.apache.org/jira/browse/TS-3478
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: Leif Hedstrom
  Labels: review
 Fix For: 6.0.0

 Attachments: indexing.patch


 Support other header field representations on HPACK encoder.
 http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-12#section-6
 Currently the encoder supports only [Literal Header Field never 
 Indexed|http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-12#section-6.2.3].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3782) Add tests for HTTP/2 in TSQA

2015-07-26 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3782?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3782:
--
Attachment: exceptional_scenario_tests_001.patch

Exceptional test cases with [h2spec|https://github.com/summerwind/h2spec]. You 
can apply it after normal_scenario_tests_001.patch.

Unfortunately current ATS can't pass all test cases of h2spec ... so this patch 
uses only passable test cases. 

 Add tests for HTTP/2 in TSQA
 

 Key: TS-3782
 URL: https://issues.apache.org/jira/browse/TS-3782
 Project: Traffic Server
  Issue Type: Test
  Components: CI, HTTP/2
Reporter: Masaori Koshiba
Assignee: Thomas Jackson
  Labels: review
 Fix For: 6.1.0

 Attachments: exceptional_scenario_tests_001.patch, 
 normal_scenario_tests_001.patch


 Add tests for HTTP/2 in TSQA. IMO, it is better to add two types of tests for 
 HTTP/2 below.
 1. Normal Scenario Tests
   - Do HTTP requests with [hyper|https://github.com/lukasa/hyper] or other 
 HTTP/2 client.
 2. Exceptional Scenario Tests
   - [h2spec|https://github.com/summerwind/h2spec] looks good test tool for 
 edge cases of HTTP/2.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3492) Only send SETTINGS which are different than protocol defaults

2015-07-15 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3492?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3492:
--
Attachment: settings.patch

This patch contains below modifications:

1. Validate SETTINGS values which are loaded from records.config
2. Send SETTINGS only different than previous values

I'll submit test code on other JIRA issue.

 Only send SETTINGS which are different than protocol defaults
 -

 Key: TS-3492
 URL: https://issues.apache.org/jira/browse/TS-3492
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP/2
Reporter: Leif Hedstrom
Assignee: Ryo Okubo
  Labels: newbie
 Fix For: 6.1.0

 Attachments: settings.patch


 I'm thinking, why bother sending SETTINGS for values which are at the 
 protocol defaults? Also, should we make our default configs match the 
 protocol defaults consistently?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3492) Only send SETTINGS which are different than protocol defaults

2015-07-13 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14624508#comment-14624508
 ] 

Ryo Okubo commented on TS-3492:
---

I'm working for it. I'll also add some regression tests for processes of 
SETTINGS.

 Only send SETTINGS which are different than protocol defaults
 -

 Key: TS-3492
 URL: https://issues.apache.org/jira/browse/TS-3492
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP/2
Reporter: Leif Hedstrom
  Labels: newbie
 Fix For: 6.1.0


 I'm thinking, why bother sending SETTINGS for values which are at the 
 protocol defaults? Also, should we make our default configs match the 
 protocol defaults consistently?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3478) Support some header representations on HPACK encoder

2015-07-09 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3478:
--
Attachment: indexing.patch

Attached patch enables HPACK encoder to index by using static/dynamic table.

 Support some header representations on HPACK encoder
 

 Key: TS-3478
 URL: https://issues.apache.org/jira/browse/TS-3478
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP/2
Reporter: Ryo Okubo
 Fix For: 6.1.0

 Attachments: indexing.patch


 Support other header field representations on HPACK encoder.
 http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-12#section-6
 Currently the encoder supports only [Literal Header Field never 
 Indexed|http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-12#section-6.2.3].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (TS-3749) Error log isn't recorded

2015-07-09 Thread Ryo Okubo (JIRA)
Ryo Okubo created TS-3749:
-

 Summary: Error log isn't recorded
 Key: TS-3749
 URL: https://issues.apache.org/jira/browse/TS-3749
 Project: Traffic Server
  Issue Type: Bug
  Components: Logging
Reporter: Ryo Okubo


error.log has not been recorded after TS-1985. Enabling error logging and 
specifying a format of error.log depended on pre-defined log format but this 
logic was eliminated on the issue.
Error logging works fine when  I tried to revert 
[5c2b032fb9f8f05ae7be1794a3103140ffe7d07e|https://github.com/apache/trafficserver/commit/5c2b032fb9f8f05ae7be1794a3103140ffe7d07e].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3513) http2 core dump

2015-04-13 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14493450#comment-14493450
 ] 

Ryo Okubo commented on TS-3513:
---

[~bcall] the HPACK_ERROR_COMPRESSION_ERROR means maybe compression error at 
there. When the error occurs and more data doesn't exist in the buffer (this 
judge is processed in [the outer HPACK 
decoder|https://github.com/apache/trafficserver/blob/master/proxy/http2/Http2ConnectionState.cc#L221]),
 its handled as real error.
Error handling around HPACK encoder/decoder may cause misunderstanding so I 
want to refactoring it at sometime.

It looks like your commit is valid. thanks.

 http2 core dump
 ---

 Key: TS-3513
 URL: https://issues.apache.org/jira/browse/TS-3513
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Affects Versions: 5.3.0
Reporter: Bryan Call
Assignee: Bryan Call
  Labels: crash
 Fix For: 6.0.0


 {code}
 traffic_server: Segmentation fault (Invalid permissions for mapped object 
 [0x2ab5cbb3854d])traffic_server - STACK TRACE:
 /usr/bin/traffic_server(_Z19crash_logger_invokeiP7siginfoPv+0xc3)[0x50abe2]
 /lib64/libpthread.so.0(+0x3bb560f710)[0x2ab4b57c8710]
 /lib64/libc.so.6(memmove+0x107)[0x3bb4e83907]
 /usr/bin/traffic_server[0x63e8b4]
 /usr/bin/traffic_server(_ZN20Http2ConnectionState18main_event_handlerEiPv+0x2eb)[0x640137]
 /usr/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x50da20]
 /usr/bin/traffic_server[0x63b5fd]
 /usr/bin/traffic_server(_ZN18Http2ClientSession25state_complete_frame_readEiPv+0x28f)[0x63d379]
 /usr/bin/traffic_server(_ZN18Http2ClientSession18main_event_handlerEiPv+0xfb)[0x63c26d]
 /usr/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x50da20]
 /usr/bin/traffic_server(_ZN18Http2ClientSession22state_start_frame_readEiPv+0x892)[0x63d0c0]
 /usr/bin/traffic_server(_ZN18Http2ClientSession18main_event_handlerEiPv+0xfb)[0x63c26d]
 /usr/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x50da20]
 /usr/bin/traffic_server[0x76dac7]
 /usr/bin/traffic_server(_ZN18UnixNetVConnection19readSignalAndUpdateEi+0x20)[0x7703f4]
 /usr/bin/traffic_server(_ZN17SSLNetVConnection11net_read_ioEP10NetHandlerP7EThread+0x832)[0x75751c]
 /usr/bin/traffic_server(_ZN10NetHandler12mainNetEventEiP5Event+0x628)[0x7676c8]
 /usr/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x50da20]
 /usr/bin/traffic_server(_ZN7EThread13process_eventEP5Eventi+0xc6)[0x78de82]
 /usr/bin/traffic_server(_ZN7EThread7executeEv+0x3dc)[0x78e38c]
 /usr/bin/traffic_server[0x78d43d]
 /lib64/libpthread.so.0(+0x3bb56079d1)[0x2ab4b57c09d1]
 /lib64/libc.so.6(clone+0x6d)[0x3bb4ee88fd]
 {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3513) http2 core dump

2015-04-12 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14491859#comment-14491859
 ] 

Ryo Okubo commented on TS-3513:
---

{{decoded_bytes}} is supporsed to be equal or less than {{read_len}}, but it 
isn't on above case.
I'll check HPACK decoder logic.

 http2 core dump
 ---

 Key: TS-3513
 URL: https://issues.apache.org/jira/browse/TS-3513
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Affects Versions: 5.3.0
Reporter: Bryan Call
Assignee: Ryo Okubo
  Labels: crash
 Fix For: 6.0.0


 {code}
 traffic_server: Segmentation fault (Invalid permissions for mapped object 
 [0x2ab5cbb3854d])traffic_server - STACK TRACE:
 /usr/bin/traffic_server(_Z19crash_logger_invokeiP7siginfoPv+0xc3)[0x50abe2]
 /lib64/libpthread.so.0(+0x3bb560f710)[0x2ab4b57c8710]
 /lib64/libc.so.6(memmove+0x107)[0x3bb4e83907]
 /usr/bin/traffic_server[0x63e8b4]
 /usr/bin/traffic_server(_ZN20Http2ConnectionState18main_event_handlerEiPv+0x2eb)[0x640137]
 /usr/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x50da20]
 /usr/bin/traffic_server[0x63b5fd]
 /usr/bin/traffic_server(_ZN18Http2ClientSession25state_complete_frame_readEiPv+0x28f)[0x63d379]
 /usr/bin/traffic_server(_ZN18Http2ClientSession18main_event_handlerEiPv+0xfb)[0x63c26d]
 /usr/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x50da20]
 /usr/bin/traffic_server(_ZN18Http2ClientSession22state_start_frame_readEiPv+0x892)[0x63d0c0]
 /usr/bin/traffic_server(_ZN18Http2ClientSession18main_event_handlerEiPv+0xfb)[0x63c26d]
 /usr/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x50da20]
 /usr/bin/traffic_server[0x76dac7]
 /usr/bin/traffic_server(_ZN18UnixNetVConnection19readSignalAndUpdateEi+0x20)[0x7703f4]
 /usr/bin/traffic_server(_ZN17SSLNetVConnection11net_read_ioEP10NetHandlerP7EThread+0x832)[0x75751c]
 /usr/bin/traffic_server(_ZN10NetHandler12mainNetEventEiP5Event+0x628)[0x7676c8]
 /usr/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x50da20]
 /usr/bin/traffic_server(_ZN7EThread13process_eventEP5Eventi+0xc6)[0x78de82]
 /usr/bin/traffic_server(_ZN7EThread7executeEv+0x3dc)[0x78e38c]
 /usr/bin/traffic_server[0x78d43d]
 /lib64/libpthread.so.0(+0x3bb56079d1)[0x2ab4b57c09d1]
 /lib64/libc.so.6(clone+0x6d)[0x3bb4ee88fd]
 {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3480) Large stream id cause PROTOCOL_ERROR

2015-04-07 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3480?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3480:
--
Attachment: ts-3480.diff

Add counter of current streams and logic which compares it with 
MAX_CONCURRENT_STREAM.

 Large stream id cause PROTOCOL_ERROR
 

 Key: TS-3480
 URL: https://issues.apache.org/jira/browse/TS-3480
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Masakazu Kitajo
Assignee: Ryo Okubo
 Fix For: 6.0.0

 Attachments: ts-3480.diff


 TS sends back a GOAWAY frame with PROTOCOL_ERROR if the stream id in a 
 request is over the value of SETTINGS_MAX_CONCURRENT_STREAMS.
 This is because current implementation uses the value of the setting as the 
 maximum value for stream id, but not the maximum number of concurrent streams.
 https://git-wip-us.apache.org/repos/asf?p=trafficserver.git;a=blob;f=proxy/http2/Http2ConnectionState.cc;h=574c4ce5cf8303476ca3c7440ac6e0038477a933;hb=26f438d486eaa04267db953d8d5f1249a63af2c3#l712
 How to reproduce:
 {noformat}
 nghttp -v -m 51 http://localhost/
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (TS-3480) Large stream id cause PROTOCOL_ERROR

2015-04-07 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14482967#comment-14482967
 ] 

Ryo Okubo edited comment on TS-3480 at 4/7/15 10:42 AM:


Add counter of current streams and logic which compares it with 
MAX_CONCURRENT_STREAM.

The counter checks only streams started by client but another counter for 
server push streams. And a limiter which is the sum of these streams counter 
may be required.


was (Author: rokubo):
Add counter of current streams and logic which compares it with 
MAX_CONCURRENT_STREAM.

 Large stream id cause PROTOCOL_ERROR
 

 Key: TS-3480
 URL: https://issues.apache.org/jira/browse/TS-3480
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Masakazu Kitajo
Assignee: Ryo Okubo
 Fix For: 6.0.0

 Attachments: ts-3480.diff


 TS sends back a GOAWAY frame with PROTOCOL_ERROR if the stream id in a 
 request is over the value of SETTINGS_MAX_CONCURRENT_STREAMS.
 This is because current implementation uses the value of the setting as the 
 maximum value for stream id, but not the maximum number of concurrent streams.
 https://git-wip-us.apache.org/repos/asf?p=trafficserver.git;a=blob;f=proxy/http2/Http2ConnectionState.cc;h=574c4ce5cf8303476ca3c7440ac6e0038477a933;hb=26f438d486eaa04267db953d8d5f1249a63af2c3#l712
 How to reproduce:
 {noformat}
 nghttp -v -m 51 http://localhost/
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3498) h2c (upgrade dance) seems to hang

2015-04-06 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14481166#comment-14481166
 ] 

Ryo Okubo commented on TS-3498:
---

Its caused by missing fetching to origin server after upgrade. I'll fix it.

 h2c (upgrade dance) seems to hang
 -

 Key: TS-3498
 URL: https://issues.apache.org/jira/browse/TS-3498
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Leif Hedstrom
Assignee: Ryo Okubo
 Fix For: 6.0.0


 I see
 {code}
 loki (09:37) 259/0 $ nghttp -v -u http://docs.trafficserver.apache.org
 [  0.031] Connected
 [  0.031] HTTP Upgrade request
 GET / HTTP/1.1
 Host: docs.trafficserver.apache.org
 Connection: Upgrade, HTTP2-Settings
 Upgrade: h2c-14
 HTTP2-Settings: AAMAAABkAAQAAP__
 Accept: */*
 User-Agent: nghttp2/0.7.4-DEV
 [  0.066] HTTP Upgrade response
 HTTP/1.1 101 Switching Protocols
 Date: Sun, 05 Apr 2015 15:37:58 GMT
 Connection: Upgrade
 Via: http/1.1 ATS (ApacheTrafficServer/5.3.0 [c s f ])
 Server: ATS/5.3.0
 Upgrade: h2c-14
 [  0.066] HTTP Upgrade success
 [  0.066] recv SETTINGS frame length=36, flags=0x00, stream_id=0
   (niv=6)
   [SETTINGS_HEADER_TABLE_SIZE(0x01):4096]
   [SETTINGS_ENABLE_PUSH(0x02):0]
   [SETTINGS_MAX_CONCURRENT_STREAMS(0x03):66]
   [SETTINGS_INITIAL_WINDOW_SIZE(0x04):123456]
   [SETTINGS_MAX_FRAME_SIZE(0x05):16384]
   [SETTINGS_MAX_HEADER_LIST_SIZE(0x06):4294967295]
 [  0.066] send SETTINGS frame length=12, flags=0x00, stream_id=0
   (niv=2)
   [SETTINGS_MAX_CONCURRENT_STREAMS(0x03):100]
   [SETTINGS_INITIAL_WINDOW_SIZE(0x04):65535]
 [  0.066] send SETTINGS frame length=0, flags=0x01, stream_id=0
   ; ACK
   (niv=0)
 [  0.097] recv SETTINGS frame length=0, flags=0x01, stream_id=0
   ; ACK
   (niv=0)
 {code}
 And then it hangs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (TS-3478) Support some header representations on HPACK encoder

2015-04-01 Thread Ryo Okubo (JIRA)
Ryo Okubo created TS-3478:
-

 Summary: Support some header representations on HPACK encoder
 Key: TS-3478
 URL: https://issues.apache.org/jira/browse/TS-3478
 Project: Traffic Server
  Issue Type: Improvement
  Components: HTTP/2
Reporter: Ryo Okubo


Support other header field representations on HPACK encoder.
http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-12#section-6

Currently the encoder supports only [Literal Header Field never 
Indexed|http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-12#section-6.2.3].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3415) H2 sending FIN stream too early

2015-03-26 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14381459#comment-14381459
 ] 

Ryo Okubo commented on TS-3415:
---

[~zwoop], [~shinrich]: Was the problem fixed? If its running correctly, I want 
to close this issue.

 H2 sending FIN stream too early
 ---

 Key: TS-3415
 URL: https://issues.apache.org/jira/browse/TS-3415
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Sudheer Vinukonda
Assignee: Ryo Okubo
 Fix For: 6.0.0

 Attachments: ts-3415-02.diff, ts-3415-3414.diff, ts-3415.diff


 With H2 running on the docs/jenkins server, some of us have noticed empty 
 pages on chrome/FF when hitting those servers. Looking at the H2 traces, it 
 seems that ATS is sending FIN streams (both SPDY_SESSION_RECV_HEADERS and 
 SPDY_SESSION_RECV_DATA with fin flag set to true) before sending the data 
 frames. This makes the browser display blank pages.
 Example:
 {code}
 t=31890437 [st=140]SPDY_SESSION_RECV_DATA
-- fin = true
-- size = 0
-- stream_id = 1
 t=31890437 [st=140]SPDY_SESSION_RECV_DATA
-- fin = false
-- size = 2591
-- stream_id = 1
 {code}
 Detailed traces below:
 {code}
 1112054: SPDY_SESSION
 ci.trafficserver.apache.org:443 (DIRECT)
 Start Time: 2015-02-26 13:30:14.060
 t=31890297 [st=  0] +SPDY_SESSION  [dt=?]
  -- host = ci.trafficserver.apache.org:443
  -- proxy = DIRECT
 t=31890297 [st=  0]SPDY_SESSION_INITIALIZED
-- protocol = h2-14
-- source_dependency = 1112049 (SOCKET)
 t=31890297 [st=  0]SPDY_SESSION_SEND_SETTINGS
-- settings = [[id:3 flags:0 value:1000],[id:4 
 flags:0 value:10485760]]
 t=31890297 [st=  0]SPDY_STREAM_UPDATE_RECV_WINDOW
-- delta = 10420224
-- window_size = 10485760
 t=31890297 [st=  0]SPDY_SESSION_SENT_WINDOW_UPDATE_FRAME
-- delta = 10420224
-- stream_id = 0
 t=31890297 [st=  0]SPDY_SESSION_SYN_STREAM
-- fin = true
-- :authority: ci.trafficserver.apache.org
:method: GET
:path: /job/tsqa-master/180/consoleFull
:scheme: https
accept: 
 text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
accept-encoding: gzip, deflate, sdch
accept-language: en-US,en;q=0.8
cache-control: max-age=0
cookie: [71 bytes were stripped]
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 
 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 
 Safari/537.36
-- spdy_priority = 0
-- stream_id = 1
-- unidirectional = false
 t=31890335 [st= 38]SPDY_SESSION_RECV_SETTINGS
-- clear_persisted = false
-- host = ci.trafficserver.apache.org:443
 t=31890335 [st= 38]SPDY_SESSION_RECV_SETTING
-- flags = 0
-- id = 1
-- value = 4096
 t=31890335 [st= 38]SPDY_SESSION_RECV_SETTING
-- flags = 0
-- id = 2
-- value = 0
 t=31890335 [st= 38]SPDY_SESSION_RECV_SETTING
-- flags = 0
-- id = 3
-- value = 100
 t=31890436 [st=139]SPDY_SESSION_RECV_HEADERS
-- fin = true
-- :status: 200
age: 1
cache-control: no-cache,no-store,must-revalidate
content-encoding: gzip
content-type: text/html;charset=UTF-8
date: Thu, 26 Feb 2015 21:30:14 GMT
expires: Thu, 01 Jan 1970 00:00:00 GMT
server: ATS/5.3.0
set-cookie: [67 bytes were stripped]
strict-transport-security: max-age=86400
via: http/1.1 ATS (ApacheTrafficServer/5.3.0 
 [cMsSf ])
x-frame-options: sameorigin
x-hudson: 1.395
x-hudson-cli-port: 40666
x-hudson-theme: default
x-instance-identity: 
 

[jira] [Updated] (TS-3415) H2 sending FIN stream too early

2015-03-02 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3415:
--
Attachment: ts-3415-02.diff

ts-3415-02.diff (includes ts-3415.diff) fixes the problem around chunking. 
HPACK encoder removes connection-specific response header fields of FetchSM 
directly to satisfy [requirements for 
intermediaries|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.1.2.2]
 but these are used to check whether chunked body is done. I fix the encoder to 
skip these but not remove.

 H2 sending FIN stream too early
 ---

 Key: TS-3415
 URL: https://issues.apache.org/jira/browse/TS-3415
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Sudheer Vinukonda
 Attachments: ts-3415-02.diff, ts-3415-3414.diff, ts-3415.diff


 With H2 running on the docs/jenkins server, some of us have noticed empty 
 pages on chrome/FF when hitting those servers. Looking at the H2 traces, it 
 seems that ATS is sending FIN streams (both SPDY_SESSION_RECV_HEADERS and 
 SPDY_SESSION_RECV_DATA with fin flag set to true) before sending the data 
 frames. This makes the browser display blank pages.
 Example:
 {code}
 t=31890437 [st=140]SPDY_SESSION_RECV_DATA
-- fin = true
-- size = 0
-- stream_id = 1
 t=31890437 [st=140]SPDY_SESSION_RECV_DATA
-- fin = false
-- size = 2591
-- stream_id = 1
 {code}
 Detailed traces below:
 {code}
 1112054: SPDY_SESSION
 ci.trafficserver.apache.org:443 (DIRECT)
 Start Time: 2015-02-26 13:30:14.060
 t=31890297 [st=  0] +SPDY_SESSION  [dt=?]
  -- host = ci.trafficserver.apache.org:443
  -- proxy = DIRECT
 t=31890297 [st=  0]SPDY_SESSION_INITIALIZED
-- protocol = h2-14
-- source_dependency = 1112049 (SOCKET)
 t=31890297 [st=  0]SPDY_SESSION_SEND_SETTINGS
-- settings = [[id:3 flags:0 value:1000],[id:4 
 flags:0 value:10485760]]
 t=31890297 [st=  0]SPDY_STREAM_UPDATE_RECV_WINDOW
-- delta = 10420224
-- window_size = 10485760
 t=31890297 [st=  0]SPDY_SESSION_SENT_WINDOW_UPDATE_FRAME
-- delta = 10420224
-- stream_id = 0
 t=31890297 [st=  0]SPDY_SESSION_SYN_STREAM
-- fin = true
-- :authority: ci.trafficserver.apache.org
:method: GET
:path: /job/tsqa-master/180/consoleFull
:scheme: https
accept: 
 text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
accept-encoding: gzip, deflate, sdch
accept-language: en-US,en;q=0.8
cache-control: max-age=0
cookie: [71 bytes were stripped]
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 
 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 
 Safari/537.36
-- spdy_priority = 0
-- stream_id = 1
-- unidirectional = false
 t=31890335 [st= 38]SPDY_SESSION_RECV_SETTINGS
-- clear_persisted = false
-- host = ci.trafficserver.apache.org:443
 t=31890335 [st= 38]SPDY_SESSION_RECV_SETTING
-- flags = 0
-- id = 1
-- value = 4096
 t=31890335 [st= 38]SPDY_SESSION_RECV_SETTING
-- flags = 0
-- id = 2
-- value = 0
 t=31890335 [st= 38]SPDY_SESSION_RECV_SETTING
-- flags = 0
-- id = 3
-- value = 100
 t=31890436 [st=139]SPDY_SESSION_RECV_HEADERS
-- fin = true
-- :status: 200
age: 1
cache-control: no-cache,no-store,must-revalidate
content-encoding: gzip
content-type: text/html;charset=UTF-8
date: Thu, 26 Feb 2015 21:30:14 GMT
expires: Thu, 01 Jan 1970 00:00:00 GMT
server: ATS/5.3.0
set-cookie: [67 bytes were stripped]
strict-transport-security: max-age=86400
via: http/1.1 ATS (ApacheTrafficServer/5.3.0 
 [cMsSf ])
x-frame-options: sameorigin
  

[jira] [Commented] (TS-3415) H2 sending FIN stream too early

2015-03-02 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14343129#comment-14343129
 ] 

Ryo Okubo commented on TS-3415:
---

Susan, Thank you for your examining. ts-3415.diff looks good. I The problem 
occured after applying this patch is caused by of HPACK encoder. I'll post a 
patch to fix it tomorrow. 

 H2 sending FIN stream too early
 ---

 Key: TS-3415
 URL: https://issues.apache.org/jira/browse/TS-3415
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Sudheer Vinukonda
 Attachments: ts-3415-3414.diff, ts-3415.diff


 With H2 running on the docs/jenkins server, some of us have noticed empty 
 pages on chrome/FF when hitting those servers. Looking at the H2 traces, it 
 seems that ATS is sending FIN streams (both SPDY_SESSION_RECV_HEADERS and 
 SPDY_SESSION_RECV_DATA with fin flag set to true) before sending the data 
 frames. This makes the browser display blank pages.
 Example:
 {code}
 t=31890437 [st=140]SPDY_SESSION_RECV_DATA
-- fin = true
-- size = 0
-- stream_id = 1
 t=31890437 [st=140]SPDY_SESSION_RECV_DATA
-- fin = false
-- size = 2591
-- stream_id = 1
 {code}
 Detailed traces below:
 {code}
 1112054: SPDY_SESSION
 ci.trafficserver.apache.org:443 (DIRECT)
 Start Time: 2015-02-26 13:30:14.060
 t=31890297 [st=  0] +SPDY_SESSION  [dt=?]
  -- host = ci.trafficserver.apache.org:443
  -- proxy = DIRECT
 t=31890297 [st=  0]SPDY_SESSION_INITIALIZED
-- protocol = h2-14
-- source_dependency = 1112049 (SOCKET)
 t=31890297 [st=  0]SPDY_SESSION_SEND_SETTINGS
-- settings = [[id:3 flags:0 value:1000],[id:4 
 flags:0 value:10485760]]
 t=31890297 [st=  0]SPDY_STREAM_UPDATE_RECV_WINDOW
-- delta = 10420224
-- window_size = 10485760
 t=31890297 [st=  0]SPDY_SESSION_SENT_WINDOW_UPDATE_FRAME
-- delta = 10420224
-- stream_id = 0
 t=31890297 [st=  0]SPDY_SESSION_SYN_STREAM
-- fin = true
-- :authority: ci.trafficserver.apache.org
:method: GET
:path: /job/tsqa-master/180/consoleFull
:scheme: https
accept: 
 text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
accept-encoding: gzip, deflate, sdch
accept-language: en-US,en;q=0.8
cache-control: max-age=0
cookie: [71 bytes were stripped]
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 
 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 
 Safari/537.36
-- spdy_priority = 0
-- stream_id = 1
-- unidirectional = false
 t=31890335 [st= 38]SPDY_SESSION_RECV_SETTINGS
-- clear_persisted = false
-- host = ci.trafficserver.apache.org:443
 t=31890335 [st= 38]SPDY_SESSION_RECV_SETTING
-- flags = 0
-- id = 1
-- value = 4096
 t=31890335 [st= 38]SPDY_SESSION_RECV_SETTING
-- flags = 0
-- id = 2
-- value = 0
 t=31890335 [st= 38]SPDY_SESSION_RECV_SETTING
-- flags = 0
-- id = 3
-- value = 100
 t=31890436 [st=139]SPDY_SESSION_RECV_HEADERS
-- fin = true
-- :status: 200
age: 1
cache-control: no-cache,no-store,must-revalidate
content-encoding: gzip
content-type: text/html;charset=UTF-8
date: Thu, 26 Feb 2015 21:30:14 GMT
expires: Thu, 01 Jan 1970 00:00:00 GMT
server: ATS/5.3.0
set-cookie: [67 bytes were stripped]
strict-transport-security: max-age=86400
via: http/1.1 ATS (ApacheTrafficServer/5.3.0 
 [cMsSf ])
x-frame-options: sameorigin
x-hudson: 1.395
x-hudson-cli-port: 40666
x-hudson-theme: default
x-instance-identity: 
 

[jira] [Updated] (TS-3405) Memory use after free in HTTP/2

2015-02-25 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3405:
--
Attachment: 0002-fix-h2.patch

Fix the bug of fix-h2.patch. This patch gets mutex_lock when checking  whether 
GOAWAY was sent or not but maybe It should be replace with mutex_try_lock.

 Memory use after free in HTTP/2
 ---

 Key: TS-3405
 URL: https://issues.apache.org/jira/browse/TS-3405
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Bryan Call
 Fix For: 5.3.0

 Attachments: 0002-fix-h2.patch, fix-h2.patch


 From Leif running on docs.trafficserver.apache.org:
  
 {code}
 traffic_server: using root directory '/opt/ats'
 =
 ==31101==ERROR: AddressSanitizer: heap-use-after-free on address 
 0x6180c888 at pc 0x4f3558 bp 0x2aaf10c88930 sp 0x2aaf10c88928
 READ of size 8 at 0x6180c888 thread T2 ([ET_NET 1])
 #0 0x4f3557 in Continuation::handleEvent(int, void*) 
 ../iocore/eventsystem/I_Continuation.h:146
 #1 0x4f3557 in FetchSM::InvokePluginExt(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:301
 #2 0x4f3a7a in FetchSM::process_fetch_read(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:465
 #3 0x4f5112 in FetchSM::fetch_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:514
 #4 0x59f1b7 in Continuation::handleEvent(int, void*) 
 ../iocore/eventsystem/I_Continuation.h:146
 #5 0x59f1b7 in PluginVC::process_read_side(bool) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:640
 #6 0x5abcb9 in PluginVC::main_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:206
 #7 0xc821fe in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #8 0xc821fe in EThread::process_event(Event*, int) 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:144
 #9 0xc84819 in EThread::execute() 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:238
 #10 0xc80e18 in spawn_thread_internal 
 /usr/local/src/trafficserver/iocore/eventsystem/Thread.cc:88
 #11 0x2aaf0b083df2 in start_thread (/lib64/libpthread.so.0+0x7df2)
 #12 0x2aaf0c8ec1ac in clone (/lib64/libc.so.6+0xf61ac)
 0x6180c888 is located 8 bytes inside of 816-byte region 
 [0x6180c880,0x6180cbb0)
 freed by thread T0 ([ET_NET 0]) here:
 #0 0x2aaf08c131c7 in __interceptor_free 
 ../../.././libsanitizer/asan/asan_malloc_linux.cc:62
 #1 0x7b7d42 in Http2ClientSession::do_io_close(int) 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:194
 #2 0x7b7d42 in Http2ClientSession::main_event_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:237
 #3 0xc1351f in Continuation::handleEvent(int, void*) 
 ../../iocore/eventsystem/I_Continuation.h:146
 #4 0xc1351f in read_signal_and_update 
 /usr/local/src/trafficserver/iocore/net/UnixNetVConnection.cc:140
 #5 0xc1351f in read_signal_done 
 /usr/local/src/trafficserver/iocore/net/UnixNetVConnection.cc:185
 #6 0xc1351f in UnixNetVConnection::readSignalDone(int, NetHandler*) 
 /usr/local/src/trafficserver/iocore/net/UnixNetVConnection.cc:939
 #7 0xbbabf8 in SSLNetVConnection::net_read_io(NetHandler*, EThread*) 
 /usr/local/src/trafficserver/iocore/net/SSLNetVConnection.cc:596
 #8 0xbda09c in NetHandler::mainNetEvent(int, Event*) 
 /usr/local/src/trafficserver/iocore/net/UnixNet.cc:513
 #9 0xc85089 in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #10 0xc85089 in EThread::process_event(Event*, int) 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:144
 #11 0xc85089 in EThread::execute() 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:268
 #12 0x498f96 in main /usr/local/src/trafficserver/proxy/Main.cc:1826
 #13 0x2aaf0c817af4 in __libc_start_main (/lib64/libc.so.6+0x21af4)
 previously allocated by thread T0 ([ET_NET 0]) here:
 #0 0x2aaf08c1393b in __interceptor_posix_memalign 
 ../../.././libsanitizer/asan/asan_malloc_linux.cc:130
 #1 0x2aaf09afd2f9 in ats_memalign 
 /usr/local/src/trafficserver/lib/ts/ink_memory.cc:96
 #2 0x7cd804 in ClassAllocatorHttp2ClientSession::alloc() 
 ../../lib/ts/Allocator.h:124
 #3 0x7cd804 in Http2SessionAccept::accept(NetVConnection*, MIOBuffer*, 
 IOBufferReader*) 
 /usr/local/src/trafficserver/proxy/http2/Http2SessionAccept.cc:57
 #4 0x7cd3c4 in Http2SessionAccept::mainEvent(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2SessionAccept.cc:69
 #5 0xbc2fae in SSLNextProtocolTrampoline::ioCompletionEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/net/SSLNextProtocolAccept.cc:101
 #6 0xc1351f in 

[jira] [Updated] (TS-3405) Memory use after free in HTTP/2

2015-02-24 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3405:
--
Attachment: fix-h2.patch

Fix missing releasing processes for  FetchSM and Http2ConnectionState. It may 
fix use-after-free.  

 Memory use after free in HTTP/2
 ---

 Key: TS-3405
 URL: https://issues.apache.org/jira/browse/TS-3405
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Bryan Call
 Fix For: 5.3.0

 Attachments: fix-h2.patch


 From Leif running on docs.trafficserver.apache.org:
  
 {code}
 traffic_server: using root directory '/opt/ats'
 =
 ==31101==ERROR: AddressSanitizer: heap-use-after-free on address 
 0x6180c888 at pc 0x4f3558 bp 0x2aaf10c88930 sp 0x2aaf10c88928
 READ of size 8 at 0x6180c888 thread T2 ([ET_NET 1])
 #0 0x4f3557 in Continuation::handleEvent(int, void*) 
 ../iocore/eventsystem/I_Continuation.h:146
 #1 0x4f3557 in FetchSM::InvokePluginExt(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:301
 #2 0x4f3a7a in FetchSM::process_fetch_read(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:465
 #3 0x4f5112 in FetchSM::fetch_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:514
 #4 0x59f1b7 in Continuation::handleEvent(int, void*) 
 ../iocore/eventsystem/I_Continuation.h:146
 #5 0x59f1b7 in PluginVC::process_read_side(bool) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:640
 #6 0x5abcb9 in PluginVC::main_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:206
 #7 0xc821fe in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #8 0xc821fe in EThread::process_event(Event*, int) 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:144
 #9 0xc84819 in EThread::execute() 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:238
 #10 0xc80e18 in spawn_thread_internal 
 /usr/local/src/trafficserver/iocore/eventsystem/Thread.cc:88
 #11 0x2aaf0b083df2 in start_thread (/lib64/libpthread.so.0+0x7df2)
 #12 0x2aaf0c8ec1ac in clone (/lib64/libc.so.6+0xf61ac)
 0x6180c888 is located 8 bytes inside of 816-byte region 
 [0x6180c880,0x6180cbb0)
 freed by thread T0 ([ET_NET 0]) here:
 #0 0x2aaf08c131c7 in __interceptor_free 
 ../../.././libsanitizer/asan/asan_malloc_linux.cc:62
 #1 0x7b7d42 in Http2ClientSession::do_io_close(int) 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:194
 #2 0x7b7d42 in Http2ClientSession::main_event_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:237
 #3 0xc1351f in Continuation::handleEvent(int, void*) 
 ../../iocore/eventsystem/I_Continuation.h:146
 #4 0xc1351f in read_signal_and_update 
 /usr/local/src/trafficserver/iocore/net/UnixNetVConnection.cc:140
 #5 0xc1351f in read_signal_done 
 /usr/local/src/trafficserver/iocore/net/UnixNetVConnection.cc:185
 #6 0xc1351f in UnixNetVConnection::readSignalDone(int, NetHandler*) 
 /usr/local/src/trafficserver/iocore/net/UnixNetVConnection.cc:939
 #7 0xbbabf8 in SSLNetVConnection::net_read_io(NetHandler*, EThread*) 
 /usr/local/src/trafficserver/iocore/net/SSLNetVConnection.cc:596
 #8 0xbda09c in NetHandler::mainNetEvent(int, Event*) 
 /usr/local/src/trafficserver/iocore/net/UnixNet.cc:513
 #9 0xc85089 in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #10 0xc85089 in EThread::process_event(Event*, int) 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:144
 #11 0xc85089 in EThread::execute() 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:268
 #12 0x498f96 in main /usr/local/src/trafficserver/proxy/Main.cc:1826
 #13 0x2aaf0c817af4 in __libc_start_main (/lib64/libc.so.6+0x21af4)
 previously allocated by thread T0 ([ET_NET 0]) here:
 #0 0x2aaf08c1393b in __interceptor_posix_memalign 
 ../../.././libsanitizer/asan/asan_malloc_linux.cc:130
 #1 0x2aaf09afd2f9 in ats_memalign 
 /usr/local/src/trafficserver/lib/ts/ink_memory.cc:96
 #2 0x7cd804 in ClassAllocatorHttp2ClientSession::alloc() 
 ../../lib/ts/Allocator.h:124
 #3 0x7cd804 in Http2SessionAccept::accept(NetVConnection*, MIOBuffer*, 
 IOBufferReader*) 
 /usr/local/src/trafficserver/proxy/http2/Http2SessionAccept.cc:57
 #4 0x7cd3c4 in Http2SessionAccept::mainEvent(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2SessionAccept.cc:69
 #5 0xbc2fae in SSLNextProtocolTrampoline::ioCompletionEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/net/SSLNextProtocolAccept.cc:101
 #6 0xc1351f in Continuation::handleEvent(int, void*) 
 

[jira] [Commented] (TS-3405) Memory use after free in HTTP/2

2015-02-24 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14335875#comment-14335875
 ] 

Ryo Okubo commented on TS-3405:
---

Susan, I made a trivial mistake. I should raise HTTP2_SESSION_EVENT_FINI after 
calling HTTP2_SESSION_EVENT_XMIT as below code. I'll fix soon.

{code}
// xmit event
MUTEX_LOCK(lock, this-ua_session-mutex, this_ethread());
this-ua_session-handleEvent(HTTP2_SESSION_EVENT_XMIT, frame);

// finalize ConnectionState
handleEvent(HTTP2_SESSION_EVENT_FINI, NULL);
{code}

I'll also try reproducing the CPU usage problem.

 Memory use after free in HTTP/2
 ---

 Key: TS-3405
 URL: https://issues.apache.org/jira/browse/TS-3405
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP/2
Reporter: Bryan Call
 Fix For: 5.3.0

 Attachments: fix-h2.patch


 From Leif running on docs.trafficserver.apache.org:
  
 {code}
 traffic_server: using root directory '/opt/ats'
 =
 ==31101==ERROR: AddressSanitizer: heap-use-after-free on address 
 0x6180c888 at pc 0x4f3558 bp 0x2aaf10c88930 sp 0x2aaf10c88928
 READ of size 8 at 0x6180c888 thread T2 ([ET_NET 1])
 #0 0x4f3557 in Continuation::handleEvent(int, void*) 
 ../iocore/eventsystem/I_Continuation.h:146
 #1 0x4f3557 in FetchSM::InvokePluginExt(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:301
 #2 0x4f3a7a in FetchSM::process_fetch_read(int) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:465
 #3 0x4f5112 in FetchSM::fetch_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/FetchSM.cc:514
 #4 0x59f1b7 in Continuation::handleEvent(int, void*) 
 ../iocore/eventsystem/I_Continuation.h:146
 #5 0x59f1b7 in PluginVC::process_read_side(bool) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:640
 #6 0x5abcb9 in PluginVC::main_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/PluginVC.cc:206
 #7 0xc821fe in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #8 0xc821fe in EThread::process_event(Event*, int) 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:144
 #9 0xc84819 in EThread::execute() 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:238
 #10 0xc80e18 in spawn_thread_internal 
 /usr/local/src/trafficserver/iocore/eventsystem/Thread.cc:88
 #11 0x2aaf0b083df2 in start_thread (/lib64/libpthread.so.0+0x7df2)
 #12 0x2aaf0c8ec1ac in clone (/lib64/libc.so.6+0xf61ac)
 0x6180c888 is located 8 bytes inside of 816-byte region 
 [0x6180c880,0x6180cbb0)
 freed by thread T0 ([ET_NET 0]) here:
 #0 0x2aaf08c131c7 in __interceptor_free 
 ../../.././libsanitizer/asan/asan_malloc_linux.cc:62
 #1 0x7b7d42 in Http2ClientSession::do_io_close(int) 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:194
 #2 0x7b7d42 in Http2ClientSession::main_event_handler(int, void*) 
 /usr/local/src/trafficserver/proxy/http2/Http2ClientSession.cc:237
 #3 0xc1351f in Continuation::handleEvent(int, void*) 
 ../../iocore/eventsystem/I_Continuation.h:146
 #4 0xc1351f in read_signal_and_update 
 /usr/local/src/trafficserver/iocore/net/UnixNetVConnection.cc:140
 #5 0xc1351f in read_signal_done 
 /usr/local/src/trafficserver/iocore/net/UnixNetVConnection.cc:185
 #6 0xc1351f in UnixNetVConnection::readSignalDone(int, NetHandler*) 
 /usr/local/src/trafficserver/iocore/net/UnixNetVConnection.cc:939
 #7 0xbbabf8 in SSLNetVConnection::net_read_io(NetHandler*, EThread*) 
 /usr/local/src/trafficserver/iocore/net/SSLNetVConnection.cc:596
 #8 0xbda09c in NetHandler::mainNetEvent(int, Event*) 
 /usr/local/src/trafficserver/iocore/net/UnixNet.cc:513
 #9 0xc85089 in Continuation::handleEvent(int, void*) 
 /usr/local/src/trafficserver/iocore/eventsystem/I_Continuation.h:146
 #10 0xc85089 in EThread::process_event(Event*, int) 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:144
 #11 0xc85089 in EThread::execute() 
 /usr/local/src/trafficserver/iocore/eventsystem/UnixEThread.cc:268
 #12 0x498f96 in main /usr/local/src/trafficserver/proxy/Main.cc:1826
 #13 0x2aaf0c817af4 in __libc_start_main (/lib64/libc.so.6+0x21af4)
 previously allocated by thread T0 ([ET_NET 0]) here:
 #0 0x2aaf08c1393b in __interceptor_posix_memalign 
 ../../.././libsanitizer/asan/asan_malloc_linux.cc:130
 #1 0x2aaf09afd2f9 in ats_memalign 
 /usr/local/src/trafficserver/lib/ts/ink_memory.cc:96
 #2 0x7cd804 in ClassAllocatorHttp2ClientSession::alloc() 
 ../../lib/ts/Allocator.h:124
 #3 0x7cd804 in Http2SessionAccept::accept(NetVConnection*, MIOBuffer*, 
 IOBufferReader*) 
 /usr/local/src/trafficserver/proxy/http2/Http2SessionAccept.cc:57
 #4 0x7cd3c4 in 

[jira] [Commented] (TS-2729) Add HTTP/2 support to ATS

2015-02-19 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14328381#comment-14328381
 ] 

Ryo Okubo commented on TS-2729:
---

I couldn't reproduce the bug, but I found a pattern which misses releasing 
FetchSM and maybe it causes the bug. I'm going to publish newer patch to fix it 
(and some other bugs) at the next week.

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 5.3.0

 Attachments: 0003-h2-prototype.patch, 0004-h2-prototype.patch, 
 0005-h2-prototype.patch, h2c_upgrade.patch, hpack.patch, http2-0004.patch, 
 improve-mime.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-16.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-16
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Add settings to records.config to use http2.
 {noformat}
 CONFIG proxy.config.http2.enabled INT 1
 {noformat}
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * 0003-h2-prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. DONE
 * Fundamental HTTP/2 frame handling
 * Flow control
 * Some error handlings
 h2. TODO
 * Refactoring
 * More debugging
 * Write documents
 * Add test tools for HPACK, HTTP/2 frames
 h2. No plan
 * [Server 
 Push|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.2] 
 This would probably require support for [Link 
 preload|http://w3c.github.io/preload/#interoperability-with-http-link-header]?
 * [Stream 
 Priority|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-5.3]
 * [Alternative 
 Services|https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-06]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2015-02-12 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: 0005-h2-prototype.patch

* 0005-h2-prototype.patch
** Fix a bug around releasing HTTP/2 stream resources and flow control.

Leif, could you test this patch? maybe it fixes the bug which you found.

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 5.3.0

 Attachments: 0003-h2-prototype.patch, 0004-h2-prototype.patch, 
 0005-h2-prototype.patch, h2c_upgrade.patch, hpack.patch, http2-0004.patch, 
 improve-mime.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-16.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-16
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Add settings to records.config to use http2.
 {noformat}
 CONFIG proxy.config.http2.enabled INT 1
 {noformat}
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * 0003-h2-prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. DONE
 * Fundamental HTTP/2 frame handling
 * Flow control
 * Some error handlings
 h2. TODO
 * Refactoring
 * More debugging
 * Write documents
 * Add test tools for HPACK, HTTP/2 frames
 h2. No plan
 * [Server 
 Push|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.2] 
 This would probably require support for [Link 
 preload|http://w3c.github.io/preload/#interoperability-with-http-link-header]?
 * [Stream 
 Priority|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-5.3]
 * [Alternative 
 Services|https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-06]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2015-02-10 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: 0004-h2-prototype.patch
improve-mime.patch

* improve-mime.patch
** Add some const qualifier to MIME.h
** Please merge it if it has no problem

* 0004-h2-prototype.patch
** Fix some bugs of the base h2 patch, 0003-h2-prototype.patch.

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: 0003-h2-prototype.patch, 0004-h2-prototype.patch, 
 h2c_upgrade.patch, hpack.patch, http2-0004.patch, improve-mime.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-16.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-16
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Add settings to records.config to use http2.
 {noformat}
 CONFIG proxy.config.http2.enabled INT 1
 {noformat}
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * 0003-h2-prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. DONE
 * Fundamental HTTP/2 frame handling
 * Flow control
 * Some error handlings
 h2. TODO
 * Refactoring
 * More debugging
 * Write documents
 * Add test tools for HPACK, HTTP/2 frames
 h2. No plan
 * [Server 
 Push|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.2] 
 This would probably require support for [Link 
 preload|http://w3c.github.io/preload/#interoperability-with-http-link-header]?
 * [Stream 
 Priority|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-5.3]
 * [Alternative 
 Services|https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-06]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-2729) Add HTTP/2 support to ATS

2015-02-10 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14314120#comment-14314120
 ] 

Ryo Okubo commented on TS-2729:
---

I already have write permission for Wiki and create the HTTP/2 Support page.
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=51810161

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: 0003-h2-prototype.patch, 0004-h2-prototype.patch, 
 h2c_upgrade.patch, hpack.patch, http2-0004.patch, improve-mime.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-16.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-16
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Add settings to records.config to use http2.
 {noformat}
 CONFIG proxy.config.http2.enabled INT 1
 {noformat}
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * 0003-h2-prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. DONE
 * Fundamental HTTP/2 frame handling
 * Flow control
 * Some error handlings
 h2. TODO
 * Refactoring
 * More debugging
 * Write documents
 * Add test tools for HPACK, HTTP/2 frames
 h2. No plan
 * [Server 
 Push|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.2] 
 This would probably require support for [Link 
 preload|http://w3c.github.io/preload/#interoperability-with-http-link-header]?
 * [Stream 
 Priority|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-5.3]
 * [Alternative 
 Services|https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-06]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-2729) Add HTTP/2 support to ATS

2015-02-09 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14311912#comment-14311912
 ] 

Ryo Okubo commented on TS-2729:
---

Hi Leif,

Thanks for catching. I'll fix these warnings at this weekend.

I couldn't reproduce the ALPN problem ... please make sure that openssl-1.0.2 
is installed on the client. To test ALPN,  the openssl s_server command is 
useful.

{noformat}
// server (use only ALPN)
$ openssl s_server -accept 443 -key server.key -cert server.crt -alpn h2-14

// client
$ nghttp -v ...
// If the client can use ALPN, the openssl s_server command print ALPN 
protocols selected: h2-14
{noformat}


 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: 0003-h2-prototype.patch, h2c_upgrade.patch, hpack.patch, 
 http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-16.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-16
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Add settings to records.config to use http2.
 {noformat}
 CONFIG proxy.config.http2.enabled INT 1
 {noformat}
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * 0003-h2-prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. DONE
 * Fundamental HTTP/2 frame handling
 * Flow control
 * Some error handlings
 h2. TODO
 * Refactoring
 * More debugging
 * Write documents
 * Add test tools for HPACK, HTTP/2 frames
 h2. No plan
 * [Server 
 Push|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.2]
 * [Stream 
 Priority|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-5.3]
 * [Alternative 
 Services|https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-06]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2015-02-08 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Description: 
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-16.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-16


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Add settings to records.config to use http2.
{noformat}
CONFIG proxy.config.http2.enabled INT 1
{noformat}
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* 0003-h2-prototype.patch
** For experiment. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this code is unsafe and dirty. More 
refactoring is required.

h2. DONE
* Fundamental HTTP/2 frame handling
* Flow control
* Some error handlings

h2. TODO
* Refactoring
* More debugging
* Write documents
* Add test tools for HPACK, HTTP/2 frames

h2. No plan
* [Server 
Push|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.2]
* [Stream 
Priority|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-5.3]
* [Alternative 
Services|https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-06]

  was:
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-16.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-16


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Add settings to records.config to use http2.
{noformat}
CONFIG proxy.config.http2.enabled INT 1
{noformat}
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* h2_prototype.patch
** For experiment. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this code is unsafe and dirty. More 
refactoring is required.

h2. WIP
* Improve h2_prototype
* Implement hpack test tools


 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: 0003-h2-prototype.patch, h2c_upgrade.patch, hpack.patch, 
 http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-16.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-16
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Add settings to records.config to use http2.
 {noformat}
 CONFIG proxy.config.http2.enabled INT 1
 {noformat}
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * 0003-h2-prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. DONE
 * Fundamental HTTP/2 frame handling
 * Flow control
 * Some error handlings
 h2. TODO
 * Refactoring
 * More debugging
 * Write documents
 * Add test tools for HPACK, HTTP/2 frames
 h2. No plan
 * [Server 
 Push|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-8.2]
 * [Stream 
 Priority|https://tools.ietf.org/html/draft-ietf-httpbis-http2-16#section-5.3]
 * [Alternative 
 Services|https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-06]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2015-02-08 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Description: 
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-16.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-16


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Add settings to records.config to use http2.
{noformat}
CONFIG proxy.config.http2.enabled INT 1
{noformat}
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* h2_prototype.patch
** For experiment. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this code is unsafe and dirty. More 
refactoring is required.

h2. WIP
* Improve h2_prototype
* Implement hpack test tools

  was:
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* h2_prototype.patch
** For experiment. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this code is unsafe and dirty. More 
refactoring is required.

h2. WIP
* Improve h2_prototype
* Implement hpack test tools


 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: 0003-h2-prototype.patch, h2c_upgrade.patch, hpack.patch, 
 http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-16.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-16
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Add settings to records.config to use http2.
 {noformat}
 CONFIG proxy.config.http2.enabled INT 1
 {noformat}
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. WIP
 * Improve h2_prototype
 * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2015-02-06 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: (was: 0002-h2-prototype.patch)

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: h2c_upgrade.patch, hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. WIP
 * Improve h2_prototype
 * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2015-02-06 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: 0003-h2-prototype.patch

Update http2 patch. This patch supports almost of essential HTTP/2 features.
It contains below improvements.

* Enable to accpet large header
* Flow control
* Some error handlings

TODO

* Refactoring
* Unit tests for HTTP/2 frames
* Enable to set values of SETTINGS as entries of records.config
* Support stream priority and weight
* Support Alt-Svc

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: 0003-h2-prototype.patch, h2c_upgrade.patch, hpack.patch, 
 http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. WIP
 * Improve h2_prototype
 * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-11-28 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: (was: h2-14.patch)

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: h2c_upgrade.patch, hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. WIP
 * Improve h2_prototype
 * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-11-28 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: (was: add_const.patch)

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: h2c_upgrade.patch, hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. WIP
 * Improve h2_prototype
 * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-11-28 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: (was: fix_typo.patch)

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: h2c_upgrade.patch, hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. WIP
 * Improve h2_prototype
 * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-11-28 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: (was: h2_prototype.patch)

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: h2c_upgrade.patch, hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. WIP
 * Improve h2_prototype
 * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-11-28 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: 0002-h2-prototype.patch

Update the patch of HTTP/2 prototype.
It contains below improvements.
* Stream state management.
* Around handling responses from origin server.
* Enable to receive POST method HTTP/2 requests.

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: 0002-h2-prototype.patch, h2c_upgrade.patch, hpack.patch, 
 http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. WIP
 * Improve h2_prototype
 * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-11-27 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: h2c_upgrade.patch

This patch enables to upgrade from HTTP/1 processes to HTTP/2 by using [upgrade 
mechanism|https://tools.ietf.org/html/draft-ietf-httpbis-http2-15#section-3.2].

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: add_const.patch, fix_typo.patch, h2-14.patch, 
 h2_prototype.patch, h2c_upgrade.patch, hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. WIP
 * Improve h2_prototype
 * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (TS-2729) Add HTTP/2 support to ATS

2014-11-27 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14228071#comment-14228071
 ] 

Ryo Okubo edited comment on TS-2729 at 11/28/14 7:37 AM:
-

This patch enables to upgrade from HTTP/1 processes to HTTP/2 by using [upgrade 
mechanism|https://tools.ietf.org/html/draft-ietf-httpbis-http2-15#section-3.2].

We can test it by nghttp2 with _--upgrade_ option.
{noformat}
$ nghttp --verbose --upgrade http://localhost:8080/
[  0.006] HTTP Upgrade request
GET / HTTP/1.1
Host: localhost:8080
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c-14
HTTP2-Settings: AAMAAABkAAQAAP__
Accept: */*
User-Agent: nghttp2/0.6.1


[  0.007] HTTP Upgrade response
HTTP/1.1 101 Switching Protocols
Date: Fri, 28 Nov 2014 07:31:06 GMT
Connection: Upgrade
Server: ATS/5.3.0
Upgrade: h2c-14


[  0.007] HTTP Upgrade success
[  0.007] send SETTINGS frame length=12, flags=0x00, stream_id=0
  (niv=2)
  [SETTINGS_MAX_CONCURRENT_STREAMS(0x03):100]
  [SETTINGS_INITIAL_WINDOW_SIZE(0x04):65535]
[  0.008] recv SETTINGS frame length=0, flags=0x00, stream_id=0
  (niv=0)
[  0.008] send SETTINGS frame length=0, flags=0x01, stream_id=0
  ; ACK
  (niv=0)
[  0.008] recv SETTINGS frame length=0, flags=0x01, stream_id=0
  ; ACK
  (niv=0)
{noformat}

Processes after upgrading haven't been implemented yet.


was (Author: rokubo):
This patch enables to upgrade from HTTP/1 processes to HTTP/2 by using [upgrade 
mechanism|https://tools.ietf.org/html/draft-ietf-httpbis-http2-15#section-3.2].

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: add_const.patch, fix_typo.patch, h2-14.patch, 
 h2_prototype.patch, h2c_upgrade.patch, hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. WIP
 * Improve h2_prototype
 * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-11-14 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Description: 
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* h2_prototype.patch
** For experiment. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this code is unsafe and dirty. More 
refactoring is required.

h2. WIP
* Improve h2_prototype
* Implement hpack test tools

  was:
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* h2_prototype.patch
** For experiment. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this code is unsafe and dirty. More 
refactoring is required.

h2. Known issues
* When an origin server responds 302, this patch can't respond response body.


 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: add_const.patch, h2-14.patch, h2_prototype.patch, 
 hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. WIP
 * Improve h2_prototype
 * Implement hpack test tools



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-3156) Mutex[Try]Lock bool() operator change and unused API removal

2014-11-10 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3156:
--
Attachment: fix-MutexLock.patch

The cause of above issue is probably calling pthread_mutex_lock()  for 
destroyed mutex lock.

If a variable of ProxyMutex* is passed to MUTEX_LOCK(), it's destroyed when 
leaving that scope. For example, pthread_mutex_destroy() is called in 
MakeHttpProxyAcceptor():
{noformat}
(gdb) bt
#0  0x77830e70 in pthread_mutex_destroy () from /lib64/libpthread.so.0
#1  0x004e03da in ink_mutex_destroy (m=0xac7890) at 
../lib/ts/ink_mutex.h:87
#2  0x004e15c2 in ProxyMutex::free (this=0xac7880) at 
../iocore/eventsystem/I_Lock.h:543
#3  0x004e2f39 in PtrProxyMutex::~Ptr (this=0x7fffe3b0, 
__in_chrg=value optimized out) at ../lib/ts/Ptr.h:393
#4  0x00520f17 in MutexLock::~MutexLock (this=0x7fffe3b0, 
__in_chrg=value optimized out) at ../iocore/eventsystem/I_Lock.h:465
#5  0x005cea60 in MakeHttpProxyAcceptor (acceptor=..., port=..., 
nthreads=1) at HttpProxyServerMain.cc:230
#6  0x005cec45 in init_HttpProxyServer (n_accept_threads=1) at 
HttpProxyServerMain.cc:270
#7  0x0052aded in main (argv=0x7fffe7a8) at Main.cc:1554
{noformat}

I tried to replace ProxyMutex* with PtrProxyMutex. It looks to work fine. 
@Powell, what do you think about fix-MutexLock.patch?

 Mutex[Try]Lock bool() operator change and unused API removal
 

 Key: TS-3156
 URL: https://issues.apache.org/jira/browse/TS-3156
 Project: Traffic Server
  Issue Type: Improvement
  Components: Core
Reporter: Powell Molleti
Assignee: James Peach
Priority: Minor
  Labels: review
 Fix For: 5.2.0

 Attachments: MutexLock-ats.patch, MutexLock-ats.patch, 
 fix-MutexLock.patch


 Removed unused constructor in MutexLock along with set_and_take() method, had 
 to change FORCE_PLUGIN_MUTEX() for that. Removed release() method.
 default bool and ! operator from both MutexLock and MutexTryLock with 
 is_locked() API. Changes if (lock) to if (lock.is_locked()) across the code 
 base.
 Ran make test will be performing more system testing. Posted before for early 
 comments / feedback.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3156) Mutex[Try]Lock bool() operator change and unused API removal

2014-11-09 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14204240#comment-14204240
 ] 

Ryo Okubo commented on TS-3156:
---

Hi Powell,

As you said, this issue may be caused by an uninitialized lock.

I tried to print strerror() by writing that code:
{noformat}
static inline int
ink_mutex_acquire(ink_mutex * m)
{
  int err = pthread_mutex_lock(m);
  if (err != 0) {
fprintf(stderr, Failed to acquire mutex lock: %s, strerror(err));
abort();
  }
  return 0;
}
{noformat}

then I got 

 Mutex[Try]Lock bool() operator change and unused API removal
 

 Key: TS-3156
 URL: https://issues.apache.org/jira/browse/TS-3156
 Project: Traffic Server
  Issue Type: Improvement
  Components: Core
Reporter: Powell Molleti
Assignee: James Peach
Priority: Minor
  Labels: review
 Fix For: 5.2.0

 Attachments: MutexLock-ats.patch, MutexLock-ats.patch


 Removed unused constructor in MutexLock along with set_and_take() method, had 
 to change FORCE_PLUGIN_MUTEX() for that. Removed release() method.
 default bool and ! operator from both MutexLock and MutexTryLock with 
 is_locked() API. Changes if (lock) to if (lock.is_locked()) across the code 
 base.
 Ran make test will be performing more system testing. Posted before for early 
 comments / feedback.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3156) Mutex[Try]Lock bool() operator change and unused API removal

2014-11-09 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14204241#comment-14204241
 ] 

Ryo Okubo commented on TS-3156:
---

Hi Powell,

As you said, this issue may be caused by an uninitialized lock.

I tried to print strerror() by writing that code:
{noformat}
static inline int
ink_mutex_acquire(ink_mutex * m)
{
  int err = pthread_mutex_lock(m);
  if (err != 0) {
fprintf(stderr, Failed to acquire mutex lock: %s, strerror(err));
abort();
  }
  return 0;
}
{noformat}

then I got 

 Mutex[Try]Lock bool() operator change and unused API removal
 

 Key: TS-3156
 URL: https://issues.apache.org/jira/browse/TS-3156
 Project: Traffic Server
  Issue Type: Improvement
  Components: Core
Reporter: Powell Molleti
Assignee: James Peach
Priority: Minor
  Labels: review
 Fix For: 5.2.0

 Attachments: MutexLock-ats.patch, MutexLock-ats.patch


 Removed unused constructor in MutexLock along with set_and_take() method, had 
 to change FORCE_PLUGIN_MUTEX() for that. Removed release() method.
 default bool and ! operator from both MutexLock and MutexTryLock with 
 is_locked() API. Changes if (lock) to if (lock.is_locked()) across the code 
 base.
 Ran make test will be performing more system testing. Posted before for early 
 comments / feedback.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Issue Comment Deleted] (TS-3156) Mutex[Try]Lock bool() operator change and unused API removal

2014-11-09 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3156:
--
Comment: was deleted

(was: Hi Powell,

As you said, this issue may be caused by an uninitialized lock.

I tried to print strerror() by writing that code:
{noformat}
static inline int
ink_mutex_acquire(ink_mutex * m)
{
  int err = pthread_mutex_lock(m);
  if (err != 0) {
fprintf(stderr, Failed to acquire mutex lock: %s, strerror(err));
abort();
  }
  return 0;
}
{noformat}

then I got )

 Mutex[Try]Lock bool() operator change and unused API removal
 

 Key: TS-3156
 URL: https://issues.apache.org/jira/browse/TS-3156
 Project: Traffic Server
  Issue Type: Improvement
  Components: Core
Reporter: Powell Molleti
Assignee: James Peach
Priority: Minor
  Labels: review
 Fix For: 5.2.0

 Attachments: MutexLock-ats.patch, MutexLock-ats.patch


 Removed unused constructor in MutexLock along with set_and_take() method, had 
 to change FORCE_PLUGIN_MUTEX() for that. Removed release() method.
 default bool and ! operator from both MutexLock and MutexTryLock with 
 is_locked() API. Changes if (lock) to if (lock.is_locked()) across the code 
 base.
 Ran make test will be performing more system testing. Posted before for early 
 comments / feedback.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (TS-3156) Mutex[Try]Lock bool() operator change and unused API removal

2014-11-09 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14204240#comment-14204240
 ] 

Ryo Okubo edited comment on TS-3156 at 11/10/14 2:13 AM:
-

Hi Powell,

As you said, this issue may be caused by an uninitialized lock.

I tried to print strerror() by writing that code:
{noformat}
static inline int
ink_mutex_acquire(ink_mutex * m)
{
  int err = pthread_mutex_lock(m);
  if (err != 0) {
fprintf(stderr, Failed to acquire mutex lock: %s, strerror(err));
abort();
  }
  return 0;
}
{noformat}

then I got EINVAL.
{noformat}
Failed to acquire mutex lock: Invalid argument
{noformat}


was (Author: rokubo):
Hi Powell,

As you said, this issue may be caused by an uninitialized lock.

I tried to print strerror() by writing that code:
{noformat}
static inline int
ink_mutex_acquire(ink_mutex * m)
{
  int err = pthread_mutex_lock(m);
  if (err != 0) {
fprintf(stderr, Failed to acquire mutex lock: %s, strerror(err));
abort();
  }
  return 0;
}
{noformat}

then I got 

 Mutex[Try]Lock bool() operator change and unused API removal
 

 Key: TS-3156
 URL: https://issues.apache.org/jira/browse/TS-3156
 Project: Traffic Server
  Issue Type: Improvement
  Components: Core
Reporter: Powell Molleti
Assignee: James Peach
Priority: Minor
  Labels: review
 Fix For: 5.2.0

 Attachments: MutexLock-ats.patch, MutexLock-ats.patch


 Removed unused constructor in MutexLock along with set_and_take() method, had 
 to change FORCE_PLUGIN_MUTEX() for that. Removed release() method.
 default bool and ! operator from both MutexLock and MutexTryLock with 
 is_locked() API. Changes if (lock) to if (lock.is_locked()) across the code 
 base.
 Ran make test will be performing more system testing. Posted before for early 
 comments / feedback.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (TS-3156) Mutex[Try]Lock bool() operator change and unused API removal

2014-11-07 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14201863#comment-14201863
 ] 

Ryo Okubo commented on TS-3156:
---

I found a bug which raised SIGABRT after applying 
[53e56ffc7499648bc096d63f9c0f9da0ea9212ba|https://github.com/apache/trafficserver/commit/53e56ffc7499648bc096d63f9c0f9da0ea9212ba]

When I specified multiple ports for ssl:
{noformat}
CONFIG proxy.config.http.server_ports STRING 443:ssl 4430:ssl
{noformat}

then I caught the below problem.
{noformat}
#0  0x003e06232925 in raise () from /lib64/libc.so.6
#1  0x003e06234105 in abort () from /lib64/libc.so.6
#2  0x004f5cd2 in ink_mutex_acquire (m=0xac76d0) at 
../lib/ts/ink_mutex.h:94
#3  0x004f8482 in Mutex_lock (afile=0x7aa937 HttpProxyServerMain.cc, 
aline=227, ahandler=0x0, m=0xac76c0, t=0x76225010) at 
../iocore/eventsystem/I_Lock.h:392
#4  0x00520e3a in MutexLock::MutexLock (this=0x7fffe3b0, 
afile=0x7aa937 HttpProxyServerMain.cc, aline=227, ahandler=0x0, am=0xac76c0, 
t=0x76225010) at ../iocore/eventsystem/I_Lock.h:459
#5  0x005ce9e2 in MakeHttpProxyAcceptor (acceptor=..., port=..., 
nthreads=1) at HttpProxyServerMain.cc:227
#6  0x005cebf5 in init_HttpProxyServer (n_accept_threads=1) at 
HttpProxyServerMain.cc:270
#7  0x0052ad9d in main (argv=0x7fffe7a8) at Main.cc:1554
{noformat}

 Mutex[Try]Lock bool() operator change and unused API removal
 

 Key: TS-3156
 URL: https://issues.apache.org/jira/browse/TS-3156
 Project: Traffic Server
  Issue Type: Improvement
  Components: Core
Reporter: Powell Molleti
Assignee: James Peach
Priority: Minor
  Labels: review
 Fix For: 5.2.0

 Attachments: MutexLock-ats.patch, MutexLock-ats.patch


 Removed unused constructor in MutexLock along with set_and_take() method, had 
 to change FORCE_PLUGIN_MUTEX() for that. Removed release() method.
 default bool and ! operator from both MutexLock and MutexTryLock with 
 is_locked() API. Changes if (lock) to if (lock.is_locked()) across the code 
 base.
 Ran make test will be performing more system testing. Posted before for early 
 comments / feedback.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-10-28 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Description: 
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* h2_prototype.patch
** For experiment. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this code is unsafe and dirty. More 
refactoring is required.

h2. Known issues
* When an origin server responds 302, this patch can't respond response body.

  was:
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* hpack.patch
** A implementation of HPACK, header compression format of HTTP/2.
* h2_prototype.patch
** For experiment. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this code is unsafe and dirty. More 
refactoring is required.


 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: add_const.patch, h2-14.patch, h2_prototype.patch, 
 hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.
 h2. Known issues
 * When an origin server responds 302, this patch can't respond response body.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-10-16 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Description: 
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* add_const.patch
** Add some const qualifer to Vec and MIMEField. Its needed to make HPACK codes 
more safety.
* hpack.patch
** A implementation of HPACK, header compression format of HTTP/2.
* h2_prototype.patch
** For experimental. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this codes is unsafe and dirty. More 
refactoring is required.

  was:
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* add_const.patch
** Add some const qualifer to Vec and MIMEField. Its needed to make HPACK codes 
more safety.
* hpack.patch
** A implementation of HPACK, header compression format of HTTP/2.
* h2_prototype.patch
** For experimental. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this codes is unsafe and duty. More 
refactoring is required.


 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: add_const.patch, h2-14.patch, h2_prototype.patch, 
 hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * add_const.patch
 ** Add some const qualifer to Vec and MIMEField. Its needed to make HPACK 
 codes more safety.
 * hpack.patch
 ** A implementation of HPACK, header compression format of HTTP/2.
 * h2_prototype.patch
 ** For experimental. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this codes is unsafe and dirty. More 
 refactoring is required.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-10-16 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Description: 
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* hpack.patch
** A implementation of HPACK, header compression format of HTTP/2.
* h2_prototype.patch
** For experiment. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this code is unsafe and dirty. More 
refactoring is required.

  was:
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* hpack.patch
** A implementation of HPACK, header compression format of HTTP/2.
* h2_prototype.patch
** For experiment. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this codes is unsafe and dirty. More 
refactoring is required.


 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: add_const.patch, h2-14.patch, h2_prototype.patch, 
 hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * hpack.patch
 ** A implementation of HPACK, header compression format of HTTP/2.
 * h2_prototype.patch
 ** For experiment. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this code is unsafe and dirty. More 
 refactoring is required.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-10-15 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: (was: hpack_prototype.patch)

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: h2-14.patch, http2-0004.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-10-15 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: h2_prototype.patch
hpack.patch
add_const.patch

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: add_const.patch, h2-14.patch, h2_prototype.patch, 
 hpack.patch, http2-0004.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-10-15 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Description: 
h2. Overview

We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
experimentally.
Now, it supports HTTP/2 draft-12.
http://tools.ietf.org/html/draft-ietf-httpbis-http2-12

Our implementation similar to the SPDY implementation in ATS core(TS-2431) but 
we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
https://github.com/tatsuhiro-t/nghttp2

We tested NPN and ALPN negotiation.


h2. How to test


* Install nghttp2 library, here is URL of this library:
https://github.com/tatsuhiro-t/nghttp2

* Use '--enable-http2' option to compile ATS:
{noformat}
$ ./configure --enable-http2
$ make all  make install
{noformat}

* You can use '--with-openssl=dir' option.
* Need not configure anything if you just want to test HTTP/2 without SSL.
The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
requests.

* You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, for 
example:
{noformat}
# HTTP/2 without SSL
$ nghttp -v http://localhost/b.txt

# HTTP/2 + SSL
$ nghttp -v https://localhost/b.txt
{noformat}

h2. TODO
* -Cleanup codes.-
* Follow -http2 draft-12- and later.
* -Support ALPN.-
* Add settings related to HTTP/2 into records.config.
** it'll refer to configuration settings for SPDY on TS-2740

  was:
h2. Overview

We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
experimentally.
Now, it supports HTTP/2 draft-12.
http://tools.ietf.org/html/draft-ietf-httpbis-http2-12

Our implementation similar to the SPDY implementation in ATS core(TS-2431) but 
we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
https://github.com/tatsuhiro-t/nghttp2

We tested NPN and ALPN negotiation.


h2. How to test it

* Install nghttp2 library, here is URL of this library:
https://github.com/tatsuhiro-t/nghttp2

* Use '--enable-http2' option to compile ATS:
{noformat}
$ ./configure --enable-http2
$ make all  make install
{noformat}

* You can use '--with-openssl=dir' option.
* Need not configure anything if you just want to test HTTP/2 without SSL.
The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
requests.

* You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, for 
example:
{noformat}
# HTTP/2 without SSL
$ nghttp -v http://localhost/b.txt

# HTTP/2 + SSL
$ nghttp -v https://localhost/b.txt
{noformat}

h2. TODO
* -Cleanup codes.-
* Follow -http2 draft-12- and later.
* -Support ALPN.-
* Add settings related to HTTP/2 into records.config.
** it'll refer to configuration settings for SPDY on TS-2740


 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: add_const.patch, h2-14.patch, h2_prototype.patch, 
 hpack.patch, http2-0004.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-10-15 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Description: 
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

1. Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.

2. Configure settings to use https.

3. Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.

* 

  was:
h2. Overview

We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
experimentally.
Now, it supports HTTP/2 draft-12.
http://tools.ietf.org/html/draft-ietf-httpbis-http2-12

Our implementation similar to the SPDY implementation in ATS core(TS-2431) but 
we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
https://github.com/tatsuhiro-t/nghttp2

We tested NPN and ALPN negotiation.


h2. How to test


* Install nghttp2 library, here is URL of this library:
https://github.com/tatsuhiro-t/nghttp2

* Use '--enable-http2' option to compile ATS:
{noformat}
$ ./configure --enable-http2
$ make all  make install
{noformat}

* You can use '--with-openssl=dir' option.
* Need not configure anything if you just want to test HTTP/2 without SSL.
The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
requests.

* You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, for 
example:
{noformat}
# HTTP/2 without SSL
$ nghttp -v http://localhost/b.txt

# HTTP/2 + SSL
$ nghttp -v https://localhost/b.txt
{noformat}

h2. TODO
* -Cleanup codes.-
* Follow -http2 draft-12- and later.
* -Support ALPN.-
* Add settings related to HTTP/2 into records.config.
** it'll refer to configuration settings for SPDY on TS-2740


 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: add_const.patch, h2-14.patch, h2_prototype.patch, 
 hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 1. Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 2. Configure settings to use https.
 3. Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-10-15 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Description: 
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

1. Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.

2. Configure settings to use https.

3. Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.

* add_const.patch
  * Add some const qualifer to Vec and MIMEField. Its needed to make HPACK 
codes more safety.
* hpack.patch
  * A implementation of HPACK, header compression format of HTTP/2.
* h2_prototype.patch
  * For experimental. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this codes is unsafe and duty. More 
refactoring is required.

  was:
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

1. Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.

2. Configure settings to use https.

3. Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.

* 


 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: add_const.patch, h2-14.patch, h2_prototype.patch, 
 hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 1. Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 2. Configure settings to use https.
 3. Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * add_const.patch
   * Add some const qualifer to Vec and MIMEField. Its needed to make HPACK 
 codes more safety.
 * hpack.patch
   * A implementation of HPACK, header compression format of HTTP/2.
 * h2_prototype.patch
   * For experimental. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this codes is unsafe and duty. More 
 refactoring is required.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-10-15 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Description: 
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

1. Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.

2. Configure settings to use https.

3. Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* add_const.patch
** Add some const qualifer to Vec and MIMEField. Its needed to make HPACK codes 
more safety.
* hpack.patch
** A implementation of HPACK, header compression format of HTTP/2.
* h2_prototype.patch
** For experimental. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this codes is unsafe and duty. More 
refactoring is required.

  was:
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

1. Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.

2. Configure settings to use https.

3. Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.

* add_const.patch
  * Add some const qualifer to Vec and MIMEField. Its needed to make HPACK 
codes more safety.
* hpack.patch
  * A implementation of HPACK, header compression format of HTTP/2.
* h2_prototype.patch
  * For experimental. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this codes is unsafe and duty. More 
refactoring is required.


 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: add_const.patch, h2-14.patch, h2_prototype.patch, 
 hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 1. Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 2. Configure settings to use https.
 3. Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * add_const.patch
 ** Add some const qualifer to Vec and MIMEField. Its needed to make HPACK 
 codes more safety.
 * hpack.patch
 ** A implementation of HPACK, header compression format of HTTP/2.
 * h2_prototype.patch
 ** For experimental. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this codes is unsafe and duty. More 
 refactoring is required.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-10-15 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Description: 
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

# Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.
# Configure settings to use https.
# Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* add_const.patch
** Add some const qualifer to Vec and MIMEField. Its needed to make HPACK codes 
more safety.
* hpack.patch
** A implementation of HPACK, header compression format of HTTP/2.
* h2_prototype.patch
** For experimental. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this codes is unsafe and duty. More 
refactoring is required.

  was:
h2. Overview

Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
ATS core.
Now, it supports the latest HTTP/2 draft version, h2-14.
https://tools.ietf.org/html/draft-ietf-httpbis-http2-14


h2. How to test

1. Build ATS codes normally. you need neither any build option nor external 
HTTP/2 library.

2. Configure settings to use https.

3. Access to ATS by HTTP/2 client.


h2. Descriptions of current attached patches.
* add_const.patch
** Add some const qualifer to Vec and MIMEField. Its needed to make HPACK codes 
more safety.
* hpack.patch
** A implementation of HPACK, header compression format of HTTP/2.
* h2_prototype.patch
** For experimental. Please don't merge it. It enables to interpret HTTP/2 
requests and respond for it. But now this codes is unsafe and duty. More 
refactoring is required.


 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: add_const.patch, h2-14.patch, h2_prototype.patch, 
 hpack.patch, http2-0004.patch


 h2. Overview
 Support HTTP/2 as a client side L7 protocol. This feature is implemented into 
 ATS core.
 Now, it supports the latest HTTP/2 draft version, h2-14.
 https://tools.ietf.org/html/draft-ietf-httpbis-http2-14
 h2. How to test
 # Build ATS codes normally. you need neither any build option nor external 
 HTTP/2 library.
 # Configure settings to use https.
 # Access to ATS by HTTP/2 client.
 h2. Descriptions of current attached patches.
 * add_const.patch
 ** Add some const qualifer to Vec and MIMEField. Its needed to make HPACK 
 codes more safety.
 * hpack.patch
 ** A implementation of HPACK, header compression format of HTTP/2.
 * h2_prototype.patch
 ** For experimental. Please don't merge it. It enables to interpret HTTP/2 
 requests and respond for it. But now this codes is unsafe and duty. More 
 refactoring is required.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-09-30 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: (was: h2-14.patch)

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: hpack_prototype.patch, http2-0004.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-09-30 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: h2-14.patch

Updated h2-14.patch. it was modified considering byte order.

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: h2-14.patch, hpack_prototype.patch, http2-0004.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-09-12 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: h2-14.patch

Current HTTP/2 implementation supports draft-12, but it isn't latest 
specification.
After this patch is applied, you can use latest draft.

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: h2-14.patch, http2-0004.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (TS-2729) Add HTTP/2 support to ATS

2014-09-12 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14131283#comment-14131283
 ] 

Ryo Okubo edited comment on TS-2729 at 9/12/14 8:48 AM:


Current HTTP/2 implementation supports draft-12, but it isn't latest 
specification.
After h2-14.patch is applied, you can use latest draft.


was (Author: rokubo):
Current HTTP/2 implementation supports draft-12, but it isn't latest 
specification.
After this patch is applied, you can use latest draft.

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: h2-14.patch, http2-0004.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-09-12 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--
Attachment: hpack_prototype.patch

The hpack_prototype.patch enables to handle HTTP/2 headers that's 
encoded/decoded by HPACK.
http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09

This patch has below features.
- The encoder supports essential features.
- The decoder supports all of compression format required by HPACK draft-09.
- Some regression tests.
- Decoded headers are stored into HTTPHdr object.


Large parts of this patch are implemented by Daiki Aminaka, a student who had 
worked for our company as intern. thanks! :)

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
Assignee: James Peach
  Labels: review
 Fix For: 6.0.0

 Attachments: h2-14.patch, hpack_prototype.patch, http2-0004.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (TS-3001) ATS responds 403 when OCSP request posted for GlobalSign

2014-08-11 Thread Ryo Okubo (JIRA)
Ryo Okubo created TS-3001:
-

 Summary: ATS responds 403 when OCSP request posted for GlobalSign
 Key: TS-3001
 URL: https://issues.apache.org/jira/browse/TS-3001
 Project: Traffic Server
  Issue Type: Bug
  Components: SSL
Reporter: Ryo Okubo


OCSP request for GlobalSign requires Host header but OCSP_sendreq_new() doesn't 
attach it. so OCSP request failed with 403 status code.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (TS-3001) ATS responds 403 when OCSP request posted for GlobalSign

2014-08-11 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14092536#comment-14092536
 ] 

Ryo Okubo edited comment on TS-3001 at 8/11/14 7:48 AM:


This patch fixes query_responder() to attach Host header to OCSP request.


was (Author: rokubo):
This patch fixes query_responder() to attach Host headers to OCSP request.

 ATS responds 403 when OCSP request posted for GlobalSign
 

 Key: TS-3001
 URL: https://issues.apache.org/jira/browse/TS-3001
 Project: Traffic Server
  Issue Type: Bug
  Components: SSL
Reporter: Ryo Okubo
 Attachments: ocsp.diff


 OCSP request for GlobalSign requires Host header but OCSP_sendreq_new() 
 doesn't attach it. so OCSP request failed with 403 status code.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TS-3001) ATS responds 403 when OCSP request posted for GlobalSign

2014-08-11 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3001:
--

Attachment: ocsp.diff

This patch fixes query_responder() to attach Host headers to OCSP request.

 ATS responds 403 when OCSP request posted for GlobalSign
 

 Key: TS-3001
 URL: https://issues.apache.org/jira/browse/TS-3001
 Project: Traffic Server
  Issue Type: Bug
  Components: SSL
Reporter: Ryo Okubo
 Attachments: ocsp.diff


 OCSP request for GlobalSign requires Host header but OCSP_sendreq_new() 
 doesn't attach it. so OCSP request failed with 403 status code.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TS-3001) GlobalSign responds 403 when OCSP request posted without Host header

2014-08-11 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3001:
--

Summary: GlobalSign responds 403 when OCSP request posted without Host 
header  (was: ATS responds 403 when OCSP request posted for GlobalSign)

 GlobalSign responds 403 when OCSP request posted without Host header
 

 Key: TS-3001
 URL: https://issues.apache.org/jira/browse/TS-3001
 Project: Traffic Server
  Issue Type: Bug
  Components: SSL
Reporter: Ryo Okubo
 Attachments: ocsp.diff


 OCSP request for GlobalSign requires Host header but OCSP_sendreq_new() 
 doesn't attach it. so OCSP request failed with 403 status code.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TS-3001) GlobalSign responds 403 when OCSP request posted without Host header

2014-08-11 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-3001:
--

Attachment: (was: ocsp.diff)

 GlobalSign responds 403 when OCSP request posted without Host header
 

 Key: TS-3001
 URL: https://issues.apache.org/jira/browse/TS-3001
 Project: Traffic Server
  Issue Type: Bug
  Components: SSL
Reporter: Ryo Okubo
 Attachments: ocsp.diff


 OCSP request for GlobalSign requires Host header but OCSP_sendreq_new() 
 doesn't attach it. so OCSP request failed with 403 status code.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TS-2921) Build failure is caused by mismatching types

2014-07-07 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2921?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2921:
--

Attachment: (was: fix_sslutils.diff)

 Build failure is caused by mismatching types
 

 Key: TS-2921
 URL: https://issues.apache.org/jira/browse/TS-2921
 Project: Traffic Server
  Issue Type: Bug
  Components: Build
Reporter: Ryo Okubo

 After modification of TS-2893 merged, build failure is occured as below log.
 {noformat}
 SSLUtils.cc: In function 'SSL_CTX* SSLInitServerContext(const 
 SSLConfigParams*, const ssl_user_config)':
 SSLUtils.cc:976: error: operands to ?: have different types 'const 
 xptrchar' and 'const char [1]'
 SSLUtils.cc:986: warning: too many arguments for format
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TS-2921) Build failure is caused by mismatching types

2014-07-07 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2921?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2921:
--

Attachment: fix_sslutils.diff

 Build failure is caused by mismatching types
 

 Key: TS-2921
 URL: https://issues.apache.org/jira/browse/TS-2921
 Project: Traffic Server
  Issue Type: Bug
  Components: Build
Reporter: Ryo Okubo
 Attachments: fix_sslutils.diff


 After modification of TS-2893 merged, build failure is occured as below log.
 {noformat}
 SSLUtils.cc: In function 'SSL_CTX* SSLInitServerContext(const 
 SSLConfigParams*, const ssl_user_config)':
 SSLUtils.cc:976: error: operands to ?: have different types 'const 
 xptrchar' and 'const char [1]'
 SSLUtils.cc:986: warning: too many arguments for format
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (TS-2921) Build failure is caused by mismatching types

2014-07-06 Thread Ryo Okubo (JIRA)
Ryo Okubo created TS-2921:
-

 Summary: Build failure is caused by mismatching types
 Key: TS-2921
 URL: https://issues.apache.org/jira/browse/TS-2921
 Project: Traffic Server
  Issue Type: Bug
  Components: Build
Reporter: Ryo Okubo


After modification of TS-2893 merged, build failure is occured as below log.

{noformat}
SSLUtils.cc: In function 'SSL_CTX* SSLInitServerContext(const SSLConfigParams*, 
const ssl_user_config)':
SSLUtils.cc:976: error: operands to ?: have different types 'const xptrchar' 
and 'const char [1]'
SSLUtils.cc:986: warning: too many arguments for format
{noformat}




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TS-2921) Build failure is caused by mismatching types

2014-07-06 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2921?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2921:
--

Attachment: fix_sslutils.diff

 Build failure is caused by mismatching types
 

 Key: TS-2921
 URL: https://issues.apache.org/jira/browse/TS-2921
 Project: Traffic Server
  Issue Type: Bug
  Components: Build
Reporter: Ryo Okubo
 Attachments: fix_sslutils.diff


 After modification of TS-2893 merged, build failure is occured as below log.
 {noformat}
 SSLUtils.cc: In function 'SSL_CTX* SSLInitServerContext(const 
 SSLConfigParams*, const ssl_user_config)':
 SSLUtils.cc:976: error: operands to ?: have different types 'const 
 xptrchar' and 'const char [1]'
 SSLUtils.cc:986: warning: too many arguments for format
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TS-2915) SEGV occurs when POST request was posted without Expect: 100-continue header

2014-07-04 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2915?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2915:
--

Attachment: bugfix.diff

 SEGV occurs when POST request was posted without Expect: 100-continue header
 

 Key: TS-2915
 URL: https://issues.apache.org/jira/browse/TS-2915
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP
Reporter: Ryo Okubo
 Attachments: bugfix.diff


 The patch merged on TS-1125 has a bug that occurs Segmentation fault.
 It reproduces when send_100_continue_response option was enabled and POST 
 request was posted without Expect: 100-continue header.
 Please check follow links.
 https://github.com/apache/trafficserver/blob/master/proxy/http/HttpSM.cc#L1898
 https://github.com/apache/trafficserver/blob/master/proxy/http/HttpSM.cc#L3290



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TS-2915) SEGV occurs when POST request was posted without Expect: 100-continue header

2014-07-04 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2915?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2915:
--

Description: 
The patch merged on TS-1125 has a bug that occurs Segmentation fault.
It's reproduced when send_100_continue_response option was enabled and POST 
request was posted without Expect: 100-continue header.

Please check follow links.
https://github.com/apache/trafficserver/blob/master/proxy/http/HttpSM.cc#L1898
https://github.com/apache/trafficserver/blob/master/proxy/http/HttpSM.cc#L3290

  was:
The patch merged on TS-1125 has a bug that occurs Segmentation fault.
It reproduces when send_100_continue_response option was enabled and POST 
request was posted without Expect: 100-continue header.

Please check follow links.
https://github.com/apache/trafficserver/blob/master/proxy/http/HttpSM.cc#L1898
https://github.com/apache/trafficserver/blob/master/proxy/http/HttpSM.cc#L3290


 SEGV occurs when POST request was posted without Expect: 100-continue header
 

 Key: TS-2915
 URL: https://issues.apache.org/jira/browse/TS-2915
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP
Reporter: Ryo Okubo
 Attachments: bugfix.diff


 The patch merged on TS-1125 has a bug that occurs Segmentation fault.
 It's reproduced when send_100_continue_response option was enabled and POST 
 request was posted without Expect: 100-continue header.
 Please check follow links.
 https://github.com/apache/trafficserver/blob/master/proxy/http/HttpSM.cc#L1898
 https://github.com/apache/trafficserver/blob/master/proxy/http/HttpSM.cc#L3290



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TS-2729) Add HTTP/2 support to ATS

2014-06-12 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14029348#comment-14029348
 ] 

Ryo Okubo commented on TS-2729:
---

Hi, James
I want to see your solution and patches that supports HTTP/2. I'll help in 
order to make better HTTP/2 implementation.

By the way, what do you think about current SPDY implementation that depends on 
spdylay? If we decide to create HTTP/2 implementation without external 
libraries, I think we should rethink its dependency because HTTP/2 and SPDY 
have a lot of similar parts.

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
  Labels: review
 Fix For: 5.1.0

 Attachments: draft11.patch, fix-handling-version-string.patch, 
 http2-0002.patch, http2-0004.patch, ts2743.patch, ts2760.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-06-11 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--

Attachment: (was: cleanuped-0002.patch)

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
  Labels: review
 Fix For: 5.1.0

 Attachments: draft11.patch, fix-handling-version-string.patch, 
 http2-0002.patch, http2-0003.patch, ts2743.patch, ts2760.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-06-11 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--

Attachment: (was: draft12.patch)

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
  Labels: review
 Fix For: 5.1.0

 Attachments: draft11.patch, fix-handling-version-string.patch, 
 http2-0002.patch, http2-0003.patch, ts2743.patch, ts2760.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-06-11 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--

Attachment: (was: http2-0001.patch)

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
  Labels: review
 Fix For: 5.1.0

 Attachments: draft11.patch, fix-handling-version-string.patch, 
 http2-0002.patch, http2-0003.patch, ts2743.patch, ts2760.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (TS-2729) Add HTTP/2 support to ATS

2014-05-23 Thread Ryo Okubo (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryo Okubo updated TS-2729:
--

Attachment: http2-0003.patch

To follow TS-2751, TS-2767 and recent changes for SPDY implementation, I did 
some modification.
You can use HTTP/2 functions on latest master branch by applying only 
http2-0003.patch.

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
  Labels: review
 Fix For: 5.1.0

 Attachments: cleanuped-0002.patch, draft11.patch, draft12.patch, 
 fix-handling-version-string.patch, http2-0001.patch, http2-0002.patch, 
 http2-0003.patch, ts2743.patch, ts2760.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (TS-2729) Add HTTP/2 support to ATS

2014-05-21 Thread Ryo Okubo (JIRA)

[ 
https://issues.apache.org/jira/browse/TS-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14004539#comment-14004539
 ] 

Ryo Okubo commented on TS-2729:
---

Hi, kawtar

This patch is only for _TrafficServer_.  so you can't apply it to httpd. 

 Add HTTP/2 support to ATS
 -

 Key: TS-2729
 URL: https://issues.apache.org/jira/browse/TS-2729
 Project: Traffic Server
  Issue Type: New Feature
  Components: HTTP/2
Reporter: Ryo Okubo
  Labels: review
 Fix For: 5.1.0

 Attachments: cleanuped-0002.patch, draft11.patch, draft12.patch, 
 fix-handling-version-string.patch, http2-0001.patch, http2-0002.patch, 
 ts2743.patch, ts2760.patch


 h2. Overview
 We, CDN team of Yahoo! JAPAN, have implemented HTTP/2 support in ATS core 
 experimentally.
 Now, it supports HTTP/2 draft-12.
 http://tools.ietf.org/html/draft-ietf-httpbis-http2-12
 Our implementation similar to the SPDY implementation in ATS core(TS-2431) 
 but we use nghttp2 library instead of spdylay to interpret HTTP/2 frames.
 https://github.com/tatsuhiro-t/nghttp2
 We tested NPN and ALPN negotiation.
 h2. How to test it
 * Install nghttp2 library, here is URL of this library:
 https://github.com/tatsuhiro-t/nghttp2
 * Use '--enable-http2' option to compile ATS:
 {noformat}
 $ ./configure --enable-http2
 $ make all  make install
 {noformat}
 * You can use '--with-openssl=dir' option.
 * Need not configure anything if you just want to test HTTP/2 without SSL.
 The code can recognize HTTP2, SPDY or HTTP by reading first to 3rd bytes of 
 requests.
 * You can use nghttp in nghttp2 library(or other HTTP/2 client) to request, 
 for example:
 {noformat}
 # HTTP/2 without SSL
 $ nghttp -v http://localhost/b.txt
 # HTTP/2 + SSL
 $ nghttp -v https://localhost/b.txt
 {noformat}
 h2. TODO
 * -Cleanup codes.-
 * Follow -http2 draft-12- and later.
 * -Support ALPN.-
 * Add settings related to HTTP/2 into records.config.
 ** it'll refer to configuration settings for SPDY on TS-2740



--
This message was sent by Atlassian JIRA
(v6.2#6252)


  1   2   >