[GitHub] jmeter pull request #320: HTTPClient 4.5. migration to last APIs / Bugzilla ...

2018-02-24 Thread ubikloadpack
Github user ubikloadpack closed the pull request at:

https://github.com/apache/jmeter/pull/320


---


[GitHub] jmeter issue #320: HTTPClient 4.5. migration to last APIs / Bugzilla 58757 &...

2018-02-24 Thread pmouawad
Github user pmouawad commented on the issue:

https://github.com/apache/jmeter/pull/320
  
Merged:

- http://svn.apache.org/viewvc?rev=1825269=rev


---


Jenkins build is back to normal : JMeter Windows #1031

2018-02-24 Thread Apache Jenkins Server
See 



Bug 58807

2018-02-24 Thread Philippe Mouawad
Hello,
While working on Migration to last HC4.5 APIs and testing Client
Certificate (see another question on how to include tests for it), I
confirmed that the bug reported by Rainer was still here.

This bug has the following impact:

   - Whenever you set "https.use.cached.ssl.context=false " which is
   required for Client Certificate Testing, you end up :
  - Replaying SSL Handshake on every sample while we shouldn't
  - Losing KeepAlive
   - Another thing he tackles is that fact that within Thread Group
   iteration we reuse objects we shouldn't

IMO, we need to tackle it,  looking at Rainer patch I agree with almost all
his proposals except for what I describe below.


Let's see use most  common cases :

   - 0/ We are testing HTTP, Rainer is correct saying that when we switch
   to next iteration and are using KeepAlive we use the same connection while
   we shouldn't , this would be PROBLEM A below
   - 1/ We are testing HTTPS only without client certificate, then
   https.use.cached.ssl.context=true is ok within 1 thread group iteration.
   What would be unrealistic is the fact that SSL Handshake will not occur for
   next iteration. Let's call this case PROBLEM A.
   - 2/ We are testing HTTPS only WITH client certificate, then since
   https.use.cached.ssl.context=false is needed we have a problem PROBLEM B.

*ASSUMPTION:*

First, I think that we should consider that Each Thread Group Iteration is
a new user, indeed, If one  wants to make the same user loop, he can easily
add a Loop Controller as child of Thread Group and it's ok.

*So let's zoom to PROBLEM B first:*

   - If we make the assumption above, part of the patch of Rainer can be
   reused:
  - Have a thread local hold the fact that reset occured, but Maybe
  using JMeterVariables would be better particularly if one day we
decide to
  switch to different model 1 VU == 1 Thread.
  - What should be changed in Rainer patch is the SSL reset, indeed for
  HC4.5 we need to close idle and expired connections to really reset SSL
  State
  - What I don't get about Rainer patch is wether we should do the
  close on all HTTPCLIENT Instances of VUs or not. I think we should but It
  would be great if another brain or more would confirm

*Let's zoom to PROBLEM A:*

In summary, whenever we make a new Thread Group iteration, we must start
with new connections and not reuse existing ones.

So Rainer patch looks ok to me.

But:

1/ I would personally set default to

   -

   reuse.http.connections=false


2/ I would not introduce reuse.http.client

3/ I would not as a consequence reset HttpClient as it is not needed
to reset state if I am not wrong and it would

introduce "initialization cost" in requests timing

What's your thoughts ?


-- 
Regards
Philippe M.


How to clear SSL State in HC4.5.5

2018-02-24 Thread Philippe Mouawad
Hello,

In current jmeter trunk when we have Client certificate authentication and
we need to reset SSL State so another SSLContext is created we do this:
https://github.com/apache/jmeter/blob/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java#L838


We are currently migrating to last 4.5 and would like to know what is the
clean way to reset SSL State ?
Since httpClient.getConnectionManager() is deprecated.
Should we keep a reference to PoolingHttpClientConnectionManager and call
those methods on it ?

Current state of migration is here:

   -
   
https://github.com/ubikloadpack/jmeter/blob/HC4_FULL_MIGRATION/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java#L973


To recap, in JMeter we have 1 HttpClient per User (and this is needed as
per a previous discussion on this mailing list).

Thanks for your help.
-- 
Regards.
Philippe M.


Build failed in Jenkins: JMeter Windows #1030

2018-02-24 Thread Apache Jenkins Server
See 

--
[...truncated 17.83 KB...]
at org.tmatesoft.sqljet.core.table.SqlJetDb$3.run(SqlJetDb.java:240)
at 
org.tmatesoft.sqljet.core.table.engine.SqlJetEngine$12.runSynchronized(SqlJetEngine.java:533)
at 
org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.runSynchronized(SqlJetEngine.java:217)
at 
org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.runEngineTransaction(SqlJetEngine.java:529)
at 
org.tmatesoft.sqljet.core.table.SqlJetDb.runTransaction(SqlJetDb.java:238)
at 
org.tmatesoft.sqljet.core.table.SqlJetDb.runWriteTransaction(SqlJetDb.java:211)
at 
org.tmatesoft.sqljet.core.table.SqlJetDb.createTable(SqlJetDb.java:268)
at 
org.tmatesoft.svn.core.internal.wc17.db.statement.SVNWCDbCreateSchema$1.run(SVNWCDbCreateSchema.java:241)
at org.tmatesoft.sqljet.core.table.SqlJetDb$3.run(SqlJetDb.java:240)
at 
org.tmatesoft.sqljet.core.table.engine.SqlJetEngine$12.runSynchronized(SqlJetEngine.java:538)
at 
org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.runSynchronized(SqlJetEngine.java:217)
at 
org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.runEngineTransaction(SqlJetEngine.java:529)
at 
org.tmatesoft.sqljet.core.table.SqlJetDb.runTransaction(SqlJetDb.java:238)
at 
org.tmatesoft.sqljet.core.table.SqlJetDb.runWriteTransaction(SqlJetDb.java:211)
at 
org.tmatesoft.svn.core.internal.wc17.db.statement.SVNWCDbCreateSchema.exec(SVNWCDbCreateSchema.java:225)
... 27 more
ERROR: Subversion update failed
org.tmatesoft.sqljet.core.SqlJetException: SCHEMA: error code is SCHEMA
at 
org.tmatesoft.sqljet.core.internal.table.SqlJetOptions.verifySchemaVersion(SqlJetOptions.java:269)
at 
org.tmatesoft.sqljet.core.internal.table.SqlJetOptions.changeSchemaVersion(SqlJetOptions.java:282)
at 
org.tmatesoft.sqljet.core.internal.schema.SqlJetSchema.createTableSafe(SqlJetSchema.java:527)
at 
org.tmatesoft.sqljet.core.internal.schema.SqlJetSchema.createTable(SqlJetSchema.java:476)
at org.tmatesoft.sqljet.core.table.SqlJetDb$5.run(SqlJetDb.java:270)
at org.tmatesoft.sqljet.core.table.SqlJetDb$3.run(SqlJetDb.java:240)
at 
org.tmatesoft.sqljet.core.table.engine.SqlJetEngine$12.runSynchronized(SqlJetEngine.java:533)
at 
org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.runSynchronized(SqlJetEngine.java:217)
at 
org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.runEngineTransaction(SqlJetEngine.java:529)
at 
org.tmatesoft.sqljet.core.table.SqlJetDb.runTransaction(SqlJetDb.java:238)
at 
org.tmatesoft.sqljet.core.table.SqlJetDb.runWriteTransaction(SqlJetDb.java:211)
at 
org.tmatesoft.sqljet.core.table.SqlJetDb.createTable(SqlJetDb.java:268)
at 
org.tmatesoft.svn.core.internal.wc17.db.statement.SVNWCDbCreateSchema$1.run(SVNWCDbCreateSchema.java:241)
at org.tmatesoft.sqljet.core.table.SqlJetDb$3.run(SqlJetDb.java:240)
at 
org.tmatesoft.sqljet.core.table.engine.SqlJetEngine$12.runSynchronized(SqlJetEngine.java:538)
at 
org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.runSynchronized(SqlJetEngine.java:217)
at 
org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.runEngineTransaction(SqlJetEngine.java:529)
at 
org.tmatesoft.sqljet.core.table.SqlJetDb.runTransaction(SqlJetDb.java:238)
at 
org.tmatesoft.sqljet.core.table.SqlJetDb.runWriteTransaction(SqlJetDb.java:211)
at 
org.tmatesoft.svn.core.internal.wc17.db.statement.SVNWCDbCreateSchema.exec(SVNWCDbCreateSchema.java:225)
Caused: org.tmatesoft.svn.core.SVNException: svn: E200030: SCHEMA
at 
org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:70)
at 
org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:57)
at 
org.tmatesoft.svn.core.internal.db.SVNSqlJetDb.createSqlJetError(SVNSqlJetDb.java:195)
at 
org.tmatesoft.svn.core.internal.wc17.db.statement.SVNWCDbCreateSchema.exec(SVNWCDbCreateSchema.java:303)
at 
org.tmatesoft.svn.core.internal.db.SVNSqlJetStatement.done(SVNSqlJetStatement.java:420)
at 
org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.opRevert(SVNWCDb.java:2860)
at 
org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.revert(SvnNgRevert.java:123)
at 
org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.revert(SvnNgRevert.java:69)
at 
org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.run(SvnNgRevert.java:39)
at 
org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRevert.run(SvnNgRevert.java:26)
at 
org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
at 
org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
at