[jira] [Commented] (TS-2564) Segmentation fault in 4.2.0-rc0

2014-08-09 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on TS-2564:
-

Commit 8141ceae283a9bca5cb1d6830c11a0acccdd86d6 in trafficserver's branch 
refs/heads/master from [~amc]
[ https://git-wip-us.apache.org/repos/asf?p=trafficserver.git;h=8141cea ]

Cherry-pick - TS-2564: Fixup MIME presence bits and slot accelerators to 
recover from WKS_IDX changes, plus config to turn it off manually.


 Segmentation fault in 4.2.0-rc0
 ---

 Key: TS-2564
 URL: https://issues.apache.org/jira/browse/TS-2564
 Project: Traffic Server
  Issue Type: Bug
  Components: HTTP
Reporter: Bryan Call
Assignee: Phil Sorber
Priority: Blocker
  Labels: crash
 Fix For: 4.2.1, 5.0.0

 Attachments: ts-2564-B.diff, ts-2564.diff


 Segmentation fault in mime_hdr_set_accelerators_and_presence_bits() in 
 4.2.0-rc0:
 {code}
 (gdb) bt
 #0  mime_hdr_set_accelerators_and_presence_bits (mh=0x2acd02e108c8, 
 field=value optimized out, detach_all_dups=false) at MIME.cc:469
 #1  mime_hdr_field_detach (mh=0x2acd02e108c8, field=value optimized out, 
 detach_all_dups=false) at MIME.cc:1538
 #2  0x005c322c in mime_hdr_field_delete (heap=0x2acd02e10810, 
 mh=0x2acd02e108c8, field=0x2acd02e10ab8, delete_all_dups=value optimized 
 out) at MIME.cc:1586
 #3  0x0053cb5b in field_delete (cached_header=0x2acde002fa40, 
 response_header=0x2accc168b1d8) at ../../proxy/hdrs/MIME.h:1107
 #4  field_delete (cached_header=0x2acde002fa40, 
 response_header=0x2accc168b1d8) at ../../proxy/hdrs/MIME.h:1115
 #5  HttpTransact::merge_response_header_with_cached_header 
 (cached_header=0x2acde002fa40, response_header=0x2accc168b1d8) at 
 HttpTransact.cc:4914
 {code}



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


[jira] [Commented] (TS-2362) Backwards cache compatibility for 4.X (read 3.2)

2014-08-09 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on TS-2362:
-

Commit d6bcd2d90e0bd7494a14375a45a413974158676f in trafficserver's branch 
refs/heads/master from [~amc]
[ https://git-wip-us.apache.org/repos/asf?p=trafficserver.git;h=d6bcd2d ]

TS-2362: Cache backwards compatibility to 3.2.0.


 Backwards cache compatibility for 4.X (read 3.2)
 

 Key: TS-2362
 URL: https://issues.apache.org/jira/browse/TS-2362
 Project: Traffic Server
  Issue Type: Improvement
  Components: Cache
Reporter: Alan M. Carroll
Assignee: Alan M. Carroll
  Labels: Review
 Fix For: 5.1.0

 Attachments: ts-2362.diff


 Enable the 4.X series to be able to read 3.2 caches.



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


[jira] [Commented] (TS-2362) Backwards cache compatibility for 4.X (read 3.2)

2014-08-09 Thread Alan M. Carroll (JIRA)

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

Alan M. Carroll commented on TS-2362:
-

Final result -

This change requires no configuration, it should just work. That is, if you 
install a version with this change then your old cache should be maintained. 
This applies back to version 3.2.0 - and upgrade from that or later version 
should preserve the cache.

Note that any cache updates are written in the current format, not the old 
format. Over time this should cause a cache to be updated to the newest 
version. Because this is now tracked per object, the cost of backwards 
compatibility should diminish over time as new objects are updated and the 
compatibility logic can easily detect that to be the case.

I incorporated the TS-2564. Previously this fix had been left on the 4.2.X 
branch because (since 5.0 had a different cache version) it wasn't needed. 
However, as this enables using 4.2.X caches of all formats we must be able to 
do that fix up as well. Again, as per above, while the fixup will be done on 
all objects, new/updatd objects will skip the fixup because the object being 
permanently fixed is now trivial to detect.

 Backwards cache compatibility for 4.X (read 3.2)
 

 Key: TS-2362
 URL: https://issues.apache.org/jira/browse/TS-2362
 Project: Traffic Server
  Issue Type: Improvement
  Components: Cache
Reporter: Alan M. Carroll
Assignee: Alan M. Carroll
  Labels: Review
 Fix For: 5.1.0

 Attachments: ts-2362.diff


 Enable the 4.X series to be able to read 3.2 caches.



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


[jira] [Commented] (TS-1475) static analysis: clean up all clang and coverity reports

2014-08-09 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on TS-1475:
-

Commit 9bce6843873467eb251ff25e05921925ab8cbaee in trafficserver's branch 
refs/heads/master from [~psudaemon]
[ https://git-wip-us.apache.org/repos/asf?p=trafficserver.git;h=9bce684 ]

TS-1475: Merge libck master (0.4.3-4-g20f0827) to fix clang warning


 static analysis: clean up all clang and coverity reports
 

 Key: TS-1475
 URL: https://issues.apache.org/jira/browse/TS-1475
 Project: Traffic Server
  Issue Type: Bug
  Components: Cleanup
Affects Versions: 3.3.0
Reporter: Zhao Yongming
 Fix For: sometime


 the new report is in 
 https://ci.trafficserver.apache.org/files/clang-analyzer/latest/



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


[jira] [Commented] (TS-2967) failed assert if ssl_multicert.config doesn't exist

2014-08-09 Thread Jack Bates (JIRA)

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

Jack Bates commented on TS-2967:


bq. The only place I can see that needs a NULL check is 
{{SSLNetVConnection::sslStartHandShake()}}

Hmm what should {{SSLNetVConnection::sslStartHandShake()}} do if 
{{SSLCertificateConfig::scoped_config}} is NULL?

I think it makes sense for it to behave the same if {{ssl_multicert.config}} 
doesn't exist as if it is blank so if {{SSLCertificateConfig::scoped_config}} 
is NULL because {{ssl_multicert.config}} doesn't exist then I think 
{{SSLNetVConnection::sslStartHandShake()}} needs the 
{{lookup-defaultContext()}} that results from the following lines in 
{{SSLParseCertificateConfiguration()}}

{code}
  // We *must* have a default context even if it can't possibly work. The 
default context is used to
  // bootstrap the SSL handshake so that we can subsequently do the SNI lookup 
to switch to the real
  // context.
  if (lookup-ssl_default == NULL) {
ssl_user_config sslMultiCertSettings;
sslMultiCertSettings.addr = ats_strdup(*);
ssl_store_ssl_context(params, lookup, sslMultiCertSettings);
  }
{code}

What about the following change?

{code}
--- a/iocore/net/SSLUtils.cc
+++ b/iocore/net/SSLUtils.cc
@@ -1476,10 +1476,7 @@ SSLParseCertificateConfiguration(
 file_buf = readIntoBuffer(params-configFilePath, __func__, NULL);
   }
 
-  if (!file_buf) {
-Error(failed to read SSL certificate configuration from %s, params-confi
-return false;
-  }
+  if (file_buf) {
 
   // elevate/allow file access to root read only files/certs
   uint32_t elevate_setting = 0;
@@ -1521,6 +1518,9 @@ SSLParseCertificateConfiguration(
 
 line = tokLine(NULL, tok_state);
   }
+  } else {
+Error(failed to read SSL certificate configuration from %s, params-confi
+  }
 
   // We *must* have a default context even if it can't possibly work. The defau
   // bootstrap the SSL handshake so that we can subsequently do the SNI lookup 
{code}

This change resolves this issue because {{SSLCertificateConfig::reconfigure()}} 
will now initialize {{configid}} when {{ssl_multicert.config}} doesn't exist 
and it makes {{SSLNetVConnection::sslStartHandShake()}} behave the same if 
{{ssl_multicert.config}} doesn't exist as if it is blank.

 failed assert if ssl_multicert.config doesn't exist
 ---

 Key: TS-2967
 URL: https://issues.apache.org/jira/browse/TS-2967
 Project: Traffic Server
  Issue Type: Bug
Reporter: Jack Bates
Assignee: Jack Bates
 Fix For: 5.1.0


 If an ssl_multicert.config file doesn't exist then 
 SSLParseCertificateConfiguration() returns false (SSLUtils.cc line 1435)
 and SSLCertificateConfig::reconfigure() doesn't initialize configid 
 (SSLConfig.cc line 333)
 Then when SSLRecRawStatSyncCount() calls SSLCertificateConfig::acquire() 
 (SSLUtils.cc line 502)
 it calls ConfigProcessor::get() with configid zero (SSLConfig.cc line 342)
 and there's an ink_assert(id != 0) (ProxyConfig.cc line 175)
 One way to avoid the failed assert is if SSLCertificateConfig::acquire() and 
 SSLCertificateConfig::release() only call ConfigProcessor::get/release() if 
 (configid !=0)
 Another way might be if SSLCertificateConfig::reconfigure() initialized 
 configid with configProcessor.set(configid, NULL) if 
 SSLParseCertificateConfiguration() returns false?
 Or SSLParseCertificateConfiguration() could treat a nonexistent 
 ssl_multicert.config the same as it treats a blank file? ({{touch 
 ssl_multicert.config}} makes the failed assert go away.)
 Or maybe there's another better way to avoid the failed assert?



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


[jira] [Updated] (TS-2995) Setting client response TOS/DSCP field has no effect

2014-08-09 Thread Jack Bates (JIRA)

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

Jack Bates updated TS-2995:
---

Summary: Setting client response TOS/DSCP field has no effect  (was: 
Setting client connection TOS/DSCP field has no effect)

 Setting client response TOS/DSCP field has no effect
 

 Key: TS-2995
 URL: https://issues.apache.org/jira/browse/TS-2995
 Project: Traffic Server
  Issue Type: Bug
Reporter: Jack Bates
Assignee: Jack Bates
 Fix For: 5.1.0


 {{proxy.config.net.sock_packet_tos_in}} has no effect if 
 {{proxy.config.accept_threads}} is not zero.
 If it is zero then {{UnixNetProcessor::accept_internal()}} calls 
 {{NetAccept::init_accept_per_thread()}} which eventually calls 
 {{NetAccept::acceptFastEvent()}} in which there's code to set the {{SO_MARK}} 
 and {{IP_TOS}} socket options.
 But if it's not zero then {{UnixNetProcessor::accept_internal()}} instead 
 calls {{NetAccept::init_accept_loop()}} which eventually calls 
 {{NetAccept::do_blocking_accept()}}
 One fix is to copy the code to set the {{SO_MARK}} and {{IP_TOS}} socket 
 options from {{NetAccept::acceptFastEvent()}} to 
 {{NetAccept::do_blocking_accept()}}
 {code}
 --- a/iocore/net/UnixNetAccept.cc
 +++ b/iocore/net/UnixNetAccept.cc
 @@ -275,6 +275,18 @@ NetAccept::do_blocking_accept(EThread * t)
return -1;
  }
  
 +#if TS_HAS_SO_MARK
 +  if (packet_mark != 0) {
 +safe_setsockopt(con.fd, SOL_SOCKET, SO_MARK, reinterpret_castchar 
 *(
 +  }
 +#endif
 +
 +#if TS_HAS_IP_TOS
 +  if (packet_tos != 0) {
 +safe_setsockopt(con.fd, IPPROTO_IP, IP_TOS, reinterpret_castchar 
 *(p
 +  }
 +#endif
 +
  // Use 'NULL' to Bypass thread allocator
  vc = (UnixNetVConnection *)this-getNetProcessor()-allocate_vc(NULL);
  if (!vc) {
 {code}
 I tested this change and verified that 
 {{proxy.config.net.sock_packet_tos_in}} does correctly set the TOS/DSCP field.
 This issue was reported by Jason Strongman on the users list 
 http://thread.gmane.org/gmane.comp.apache.trafficserver.user/4141/focus=4202
 {{proxy.config.net.sock_packet_tos_in}} was introduced in TS-1090 and commit 
 b77838991531d6cb402618c3d690b83e95b92d63



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