Hi Dmitry,


On 3/15/17 00:56, Dmitry Samersoff wrote:
Serguei,

I still see the C .vs. C++ related change in the jdwpTransport.h.
done.

http://cr.openjdk.java.net/~dsamersoff/JDK-8061228/webrev.12/

Good.
Thank you for the update!



see also inline.

On 2017-03-15 00:40, serguei.spit...@oracle.com wrote:
Hi Dmitry,

We already had a big review thread back in 2014 on this.
I think, it is again going in the wrong order.

First, I think, it is better to start from a CCC (or its equivalent, CSR).
This will allow to focus on and sort out the changes in interface/behavior
first before going into the implementation details.
CCC was filed and approved. The only reason I withdraw it - the fix
didn't go to jdk9 but CCC tool doesn't have jdk10.

CSR process is also not yet implemented.

The CSR preview message from Joe is attached.
My understanding is that we can continue to use CCC.
At some points the CCC process will be moved to the CSR.

The CCC is out of date now as it does not match the webrev 12.
Also, I do not like the addition of new function StartListening11() next to StartListening().

Does it mean, that for transport version 1.2 we might have more function clones with 12 suffix? Perhaps, we need something smarter here but I'm unsure yet what it has to be.


Second, I'd suggest to separate a couple of other things.
I still see the C .vs. C++ related change in the jdwpTransport.h.
It is better to leave it along for now as it was suggested in early
review rounds.
If you still want to fix it then it is better to file a separate bug that
should include the JNI as well (as it was discussed with Alan before).
Do you mean?

   39 #ifdef __cplusplus
   40 extern "C" {
   41 #endif

I'll add it back to avoid any confusion.

Yes. I see you added it back in new version of webrev.



Also, I'm thinking if it is a good idea to separate the transport
versioning to an RFE.
It would allow to focus on this aspect as necessary.
In this case, the 8061228 will depend on the versioning.
However, it is much more simple and can be resolved faster.
It's hard to test versioning code without implementation of
new, VERSION_1_1 transport.

Network part of 8061228 is simple and clear separated from versioning,
so I would prefer to keep it together in one CR/one push.

No pressure.
I've got your point above.


Thanks,
Serguei


Restriction turned off by default (I'll file separate CR to enable it
later), so we have enough time to fix any issues that might come.

-Dmitry


Thanks,
Serguei


On 2/28/17 01:41, Dmitry Samersoff wrote:
Everybody,

Please review:

http://cr.openjdk.java.net/~dsamersoff/JDK-8061228/webrev.10/

These changes introduce new parameter[1] of the socket transport -
allow. Users can explicitly specify a list of hosts that allowed to
connect to jdwp server and it's the second part of JDWP hardening[2].

No restrictions are applied by default now but I'll file a separate CR
to restrict list of allowed peers to localhost by default.

Also these changes implement versioning for jdwp transport and therefor
simplify feature development of jdwp.


1. Example command line:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,
address=*,allow="127.0.0.0/8;192.168.0.0/24"

Possible values for allow parameter:
    *           - accept connections from everywhere.
    N.N.N.N     - accept connections from this IP address only
    N.N.N.N/nn  - accept connections from particular ip subnet



2. JDK-8052136 JDWP hardening

-Dmitry



--- Begin Message ---
Hello,

The JDK organization has long been served by the ccc webapp at http://ccc.us.oracle.com. With the migration of bugs to JBS and the availability of a configurable JIRA system, other workflows can be supported by JBS as well, as seen in JEPs. As a continuation of this trend and to allow better integration across processes, the ccc process, with some adaptations, will soon be moved to JBS. After being moved to JBS, the process will also be externalized, usable and visible to JBS users who are not Oracle employees subject to the usual restrictions for confidential issues.

Initially ccc reviews for post-9 releases will be done in the new system. To avoid changing JCK and JCP-documentation processes mid-release, JDK 9 will continue to be run on the existing ccc system. After JDK 9 GA, there will be a high-fidelity bulk import of the old requests into the new system.

One of the adaptations of the ccc process is a new name "CSR" standing for "Compatibility and Specification Review." This new name is more evocative of the role the process plays and is easier to explain to new users.

The new "CSR" issue type is available for early preview on the JBS staging system:

    https://bugs-stage.openjdk.java.net

To create a CSR for an issue, under the "More" menu select "Create CSR". This is similar to how a backport can be created manually. [1]

Thanks to Tony Squire implementing the JBS support for CSR.

More information about the migration will be available next year, including expected OpenJDK discussions about the process. Until the CSR work is publicly disclosed, please keep discussions of this project internal to Oracle.

The remainder of this email, including the attachment, includes more detailed information about how the CSR process will differ from the ccc.

Please send initial feedback on the CSR implementation to me; there will be more opportunities to provide comments before the process goes live.

Cheers,

-Joe

[1] Conceptually, a CSR is a subtask of its parent issue. However, we cannot implement it that way in JIRA since we want to be able to allow a CSR issue to have a different security setting than its parent bug. In particular, we need to allow the import of all legacy ccc issues from the current system as "Confidential" CSRs even if the parent issue is publicly visible to avoid having to review and scrub all the legacy ccc requests.


 Differences between ccc and CSR
-----------------------------

At a high-level, the envisioned CSR process is very similar to the ccc: engineers present proposals for either a one-phase or two-phase review by the review body. The body conducts the review, possibly providing comments, and engineers and the review body update the state of the request accordingly until it is approved or withdrawn.

Leveraging JIRA, rather than conducting the majority of the discussions about a request on a separate mailing list, JIRA comments will instead be used as the primary communication channel. This provides easier notification to interested parties (e.g. watchers on the issue) and better archiving of the discussion.

Looking over the sections of a ccc request, some were dropped as not providing sufficient value for their cost including:

    Requestors
    Interface summary

The sections

    Problem
    Specification
    Solution

remain and the Description field of a CSR is pre-populated with a markdown version of those three sections. The compatibility risk and compatibility sections are retained as separate fields.

A CSR request has the new Scope field copied from JEPs with "SE", "JDK", and "Implementation" choices

The attached picture shows the workflow of a CSR request. It is very similar to the existing ccc workflow. Some difference and adaptions to JIRA:

* The "Accepted" state is renamed "Provisional." This is to put more Hamming distance between "Accepted" and "Approved" to avoid confusion for new and occasional ccc/csr users.

* To model JCK voting without building a full voting mechanism, the new states "JCK Initial Review" and "JCK Final Review" have been introduced. The JCK team can transition proposed and finalized requests, respectively, to the new states.

* The chair can transition requests to the "Provisional" and "Closed / Approved" states.

* Any CSR member can transition a request to "Pended".

* The assignee and reporter can transition a request to "Draft", "Closed / Will-not-fix" (the new "Withdrawn"), "Proposed", and "Finalized".

A few open issues about how the new process will work:

* Per general JBS guidelines, technical information about security vulnerabilities should *not* be stored in JBS. This should be extended to include CSR requests. As security vulnerability can and do need ccc/CSR review, some alternative approach will need to be found. Discussions on on the existing ccc alias may be used as a fallback, possibly with pointers into bugdb.

* Multi-release tracking: as currently implemented, if the same API change is being made in multiple releases, say, 7uX, 8uX, and 9, rather than filing three requests, one per release train, a single ccc request against the oldest release can be filed with the understanding it also applies by default to newer releases. The most direct way to support a similar capability in CSR would be to use multiple values in the Fix Version/s field. However, we have a strong convention for all other JBS but to only use a single value of Fix Version/s and to instead use backports for multi-release tracking.


--- End Message ---

Reply via email to