[MTCGA]: new failures in builds [6494600] needs to be handled

2022-06-28 Thread ignitetcbot
Hi Igniters,

 I've detected some new issue on TeamCity to be handled. You are more than 
welcomed to help.

 *Test with high flaky rate in master 
TcpDiscoverySslParametersTest.testOneCommonProtocol 
https://ci2.ignite.apache.org/test/5096844946511650792?currentProjectId=IgniteTests24Java8=%3Cdefault%3E
 No changes in the build

 - Here's a reminder of what contributors were agreed to do 
https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute 
 - Should you have any questions please contact dev@ignite.apache.org 

Best Regards,
Apache Ignite TeamCity Bot 
https://github.com/apache/ignite-teamcity-bot
Notification generated at 03:23:20 29-06-2022 


Re: [DISCUSS] Ignite service interceptor.

2022-06-28 Thread Pavel Tupitsyn
Hello Pavel,

The IEP looks good to me in general. It is a good addition to the service
API.

One suggestion is to improve control over service method execution within
the interceptor:
1. Bypass service call without throwing an exception.
2. Convert service call result in some way

This can be achieved by a different interface, with a single method:

public interface ServiceCallInterceptor extends Serializable {
public default Object onInvoke(Supplier delegate, String mtd, Object[]
args, ServiceContext ctx) throws ServiceInterceptException {
return delegate.get();
}
}

which can be implemented like this:

public class MyInterceptor implements ServiceCallInterceptor {
@Override
public Object onInvoke(Supplier delegate, String mtd, Object[] args,
ServiceContext ctx) throws Exception {
AuditProvider.get().recordStartEvent(mtd,
ctx.currentCallContext().attribute("sessionId"));
try {
if (!checkAuthorization(ctx))
return notAuthorizedResult();

Object value = delegate.get();

return convert(value);
}
catch (Exception e) {
// Log error
return errorResult(...);
}
finally {
AuditProvider.get().recordEndEvent(mtd,
ctx.currentCallContext().attribute("sessionId"));
}
}
}


As you can see, this way the user has full control over all aspects of the
service call.

Thoughts?

On Tue, Jun 28, 2022 at 6:33 PM Pavel Pereslegin  wrote:

> Hello Igniters!
>
> I want to continue discussing a feature that allows users to create
> their own middleware for Ignite services [1].
> Earlier was added the ability to implicitly pass a set of user
> parameters (ServiceCallContext) to the service [2].
> This feature allows users to track the origin of a service call.
> Now I'd like to add a service call interceptor to allow the user to
> separate the "middleware" logic from the business code and reduce
> boilerplate code [3].
>
> I've prepared an IEP for this feature, please take a look [4].
> I will prepare patches for Java and .NET for this feature soon.
>
> [1] https://lists.apache.org/thread/wqlvskxr0fvdo6rbo64bnct4zz53kpr0
> [2] https://issues.apache.org/jira/browse/IGNITE-15572
> [3] https://issues.apache.org/jira/browse/IGNITE-17022
> [4]
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=191334119
>


[DISCUSS] Ignite service interceptor.

2022-06-28 Thread Pavel Pereslegin
Hello Igniters!

I want to continue discussing a feature that allows users to create
their own middleware for Ignite services [1].
Earlier was added the ability to implicitly pass a set of user
parameters (ServiceCallContext) to the service [2].
This feature allows users to track the origin of a service call.
Now I'd like to add a service call interceptor to allow the user to
separate the "middleware" logic from the business code and reduce
boilerplate code [3].

I've prepared an IEP for this feature, please take a look [4].
I will prepare patches for Java and .NET for this feature soon.

[1] https://lists.apache.org/thread/wqlvskxr0fvdo6rbo64bnct4zz53kpr0
[2] https://issues.apache.org/jira/browse/IGNITE-15572
[3] https://issues.apache.org/jira/browse/IGNITE-17022
[4] https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=191334119


Re: I want to contribute to Apache ignite

2022-06-28 Thread Pavel Tupitsyn
Hi, you already have contributor permissions (JIRA username is
wkhapy123123):
https://lists.apache.org/thread/g2hlllxo7232yw1qh9wkhjrkf8mocc9j

On Tue, Jun 28, 2022 at 2:36 PM wkhapy...@gmail.com 
wrote:

> Hi,
>
> I want to contribute to Apache ignite .
>
> Would you please give me the contributor permission?
> below is my account
>
> --
> wkhapy...@gmail.com
>


I want to contribute to Apache ignite

2022-06-28 Thread wkhapy...@gmail.com
Hi,
I want to contribute to Apache ignite . 
Would you please give me the contributor permission?
below is my account



wkhapy...@gmail.com


Re: [MTCGA]: new failures in builds [6497895] needs to be handled

2022-06-28 Thread Pavel Tupitsyn
Filed a ticket for Thin Client project timeouts. I'm on it.
testValidInvalidNodeAddressesMix test hangs, this happened before too, so
not related to Mikhail's changes.

https://issues.apache.org/jira/browse/IGNITE-17247

On Tue, Jun 28, 2022 at 8:53 AM  wrote:

> Hi Igniters,
>
>  I've detected some new issue on TeamCity to be handled. You are more than
> welcomed to help.
>
>  If your changes can lead to this failure(s): We're grateful that you were
> a volunteer to make the contribution to this project, but things change and
> you may no longer be able to finalize your contribution.
>  Could you respond to this email and indicate if you wish to continue and
> fix test failures or step down and some committer may revert you commit.
>
>  *New Critical Failure in master Thin Client: Java
> https://ci2.ignite.apache.org/buildConfiguration/IgniteTests24Java8_ThinClientJava?branch=%3Cdefault%3E
>  Changes may lead to failure were done by
>  - mikhail petrov <32207922+ololo3...@users.noreply.github.com>
> https://ci2.ignite.apache.org/viewModification.html?modId=974885
>
>  - Here's a reminder of what contributors were agreed to do
> https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute
>  - Should you have any questions please contact
> dev@ignite.apache.org
>
> Best Regards,
> Apache Ignite TeamCity Bot
> https://github.com/apache/ignite-teamcity-bot
> Notification generated at 05:53:21 28-06-2022
>


Re: IEP-90 Ignite 3 Client Lifecycle

2022-06-28 Thread Pavel Tupitsyn
Igor, ok, agreed.

On Mon, Jun 27, 2022 at 11:27 PM Igor Sapego  wrote:

> Pavel, let's postpone developing a sessions part until all the corner cases
> are clarified. I'll let you know when new the proposal is ready for
> discussion
> again.
>
> Best Regards,
> Igor
>
>
> On Mon, May 23, 2022 at 12:25 PM Andrey Gura  wrote:
>
> > Thanks for the answers, Igor.
> >
> > On Thu, May 19, 2022 at 10:55 PM Igor Sapego  wrote:
> > >
> > > Andrey,
> > >
> > > 1. If a server generates a UUID that already exists it can check and
> just
> > > re-generate it straight away
> > > as a check is just a simple map lookup.
> > >
> > > 2. Well, yes. This proposal does not consider monitoring, but with
> > current
> > > approach it will be definitely
> > > easier to implement it properly.
> > >
> > > Pavel,
> > >
> > > Wow, that's really cool that you've already started working on it.
> > >
> > > Regarding your proposal I like it - it will really make a procedure
> > easier
> > > and faster for a client. I'll change
> > > the IEP accordingly.
> > >
> > > Best Regards,
> > > Igor
> > >
> > >
> > > On Thu, May 19, 2022 at 11:40 PM Pavel Tupitsyn 
> > > wrote:
> > >
> > > > Igor,
> > > >
> > > > I've started working on the initial sessions implementation [1],
> > > > and I'd like to clarify the procedure of logical connection restore.
> > > >
> > > > > client in its turn tries to establish a new *node connection*
> > > > > and restore *logical connection *using ConnectionRestoreReq
> > > >
> > > > This implies either an additional request, or something that replaces
> > > > normal handshake.
> > > > However, we need to handle two cases here:
> > > > - Logical connection is restored
> > > > - Logical connection is not restored (timed out, server restarted,
> > etc), in
> > > > which case we still establish the connection and use it.
> > > >
> > > > To account for the second case, we should always start with a regular
> > > > handshake.
> > > > I propose to add a nullable UUID field to the handshake request to
> > cover
> > > > both cases:
> > > > - connectionId is null or not found on server: proceed with normal
> > > > handshake, return newly generated connectionId.
> > > > - connectionId is not null and found on server: restore logical
> > connection,
> > > > return the same connectionId
> > > >
> > > > Client checks if returned connectionId equals to the original and
> > > > understands whether logical connection was restored or not.
> > > >
> > > > Thoughts?
> > > >
> > > > [1] https://issues.apache.org/jira/browse/IGNITE-16928
> > > >
> > > > On Thu, May 19, 2022 at 10:27 PM Pavel Tupitsyn <
> ptupit...@apache.org>
> > > > wrote:
> > > >
> > > > > Andrey,
> > > > >
> > > > > > different connections on different client instances theoretically
> > > > > > could generate an already existing connection ID
> > > > >
> > > > > Do you mean an UUID collision?
> > > > >
> > > > > On Thu, May 19, 2022 at 1:09 AM Andrey Gura 
> > wrote:
> > > > >
> > > > >> Igor,
> > > > >>
> > > > >> Thanks for the proposal.
> > > > >>
> > > > >> I understand that such a situation is almost impossible but "if
> > > > >> anything can go wrong, it will". Does the protocol take into
> account
> > > > >> that different connections on different client instances
> > theoretically
> > > > >> could generate an already existing connection ID?
> > > > >>
> > > > >> Also, do I understand correctly that a server has enough
> information
> > > > >> about client connections so it will be possible to observe a
> > > > >> connections list on the server? It would be useful for cluster
> > > > >> monitoring purposes.
> > > > >>
> > > > >> On Tue, May 17, 2022 at 3:11 PM Igor Sapego 
> > wrote:
> > > > >> >
> > > > >> > 1. I've tried to clarify IDs part;
> > > > >> > 2. Maybe you are right, though in this case we'd need to use
> > > > >> authentication
> > > > >> > in ConnectionRestoreReq. Which sounds reasonable to me.
> > > > >> >
> > > > >> > Best Regards,
> > > > >> > Igor
> > > > >> >
> > > > >> >
> > > > >> > On Tue, May 17, 2022 at 10:47 AM Pavel Tupitsyn <
> > ptupit...@apache.org
> > > > >
> > > > >> > wrote:
> > > > >> >
> > > > >> > > Igor,
> > > > >> > >
> > > > >> > > The proposal looks good to me. Very detailed!
> > > > >> > >
> > > > >> > > A couple comments:
> > > > >> > >
> > > > >> > > 1. There is a bit of a term mixup with "Connection ID", "Node
> > ID",
> > > > >> "Token"
> > > > >> > > - can you please review those?
> > > > >> > >
> > > > >> > > 2. > The Connection ID should be generated using a proper
> secure
> > > > >> algorithm
> > > > >> > > (additional research is required here) to make sure an
> intruder
> > can
> > > > >> not
> > > > >> > > generate an existing Connection ID
> > > > >> > > Not sure about the reasoning here. I think randomUUID() should
> > be
> > > > >> enough:
> > > > >> > > - In the case of an unsecured cluster it does not matter,
> > because
> > > > >> anyone
> > > > >> > > can do anything.
> > > > >> > > - In the case of