IGNITE-1144

2016-02-22 Thread Dood

Hello all,

I was wondering if anyone can take a look at the PR I submitted for 
IGNITE-1144 [1]. It compiles and I think the code is good but the tests 
I submitted are failing - specifically, one test: I am using 
assertThrows() to make sure that an exception is thrown if affinityRun() 
is invoked on a queue that is not collocated. In the tests I basically 
set up a queue that has a configuration that invokes 
setCollocated(false) and then I invoke an affinityRun() with an "empty" 
job. For some reason the tests are failing with an error that the 
exception wasn't thrown. However, in this case I actually think that my 
test is bad and the PR code is good ;-). Can someone with more Java 
experience take a quick look?


Thanks!

[1] https://issues.apache.org/jira/browse/IGNITE-1144


[jira] [Created] (IGNITE-2707) SkipStore flag is not overridden for a transaction entry

2016-02-22 Thread Alexey Goncharuk (JIRA)
Alexey Goncharuk created IGNITE-2707:


 Summary: SkipStore flag is not overridden for a transaction entry
 Key: IGNITE-2707
 URL: https://issues.apache.org/jira/browse/IGNITE-2707
 Project: Ignite
  Issue Type: Bug
  Components: cache
Affects Versions: ignite-1.4
Reporter: Alexey Goncharuk
 Fix For: 1.6


Consider the following code snippet: 
{code}
try (Transaction tx = ignite.transactions().txStart()) {
cache.withSkipStore().get(key);

cache.put(key, value);

tx.commit();
}
{code}

Transaction commit will not trigger store write because {{skipStore}} flag is 
set to {{true}} for the transaction entry and is not overridden on put() 
operation (see IgniteTxLocalAdapter:3780).



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


[jira] [Created] (IGNITE-2708) Need to validate that SPIs are started only once

2016-02-22 Thread Valentin Kulichenko (JIRA)
Valentin Kulichenko created IGNITE-2708:
---

 Summary: Need to validate that SPIs are started only once
 Key: IGNITE-2708
 URL: https://issues.apache.org/jira/browse/IGNITE-2708
 Project: Ignite
  Issue Type: Improvement
  Components: general
Reporter: Valentin Kulichenko


User forum discussion: 
http://apache-ignite-users.70518.x6.nabble.com/Ignite-instance-hangs-during-restart-in-client-mode-td3101.html

If one uses the same instance of {{IgniteConfiguration}} more than once, it 
doesn't work because SPIs have lifecycle and can be started only once. 
Currently this causes hang on start which is counterintuitive.

We should add a validation step to {{GridSpiAdapter}} that will check that the 
SPI was never started before. Its {{spiStart()}} method should set some flag 
there or throw exception if it has already been set. All internal SPI 
implementations should be changed to call {{super.spiStart()}} as first 
statement.



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


Re: Binary mode for Data Structures

2016-02-22 Thread Valentin Kulichenko
+1 to this change. It sounds like a very important feature for collocated
queues, especially after [1] is fixed.

[1] https://issues.apache.org/jira/browse/IGNITE-1144

-Val

On Sat, Feb 20, 2016 at 3:42 AM, Pavel Tupitsyn 
wrote:

> No replies, so I've created an issue:
> https://issues.apache.org/jira/browse/IGNITE-2701
>
> On Thu, Feb 18, 2016 at 3:06 PM, Pavel Tupitsyn 
> wrote:
>
> > Igniters,
> >
> > Currently we don't have binary mode (withKeepBinary) in Data Structures
> > (Queue, AtomicReference).
> > Are there any plans for implementing this, or may be a workaround?
> >
> > Lack of binary mode prevents us from implementing IgniteQueue in .NET
> > (.NET types in most cases can't be deserialized in Java).
> >
> > AtomicReference is already implemented, and it works because values are
> > wrapped in GridCacheAtomicReferenceValue. So there is inconsistent
> behavior
> > between data structures.
> >
> > Thoughts?
> >
> > --
> > --
> > Pavel Tupitsyn
> > GridGain Systems, Inc.
> > www.gridgain.com
> >
>
>
>
> --
> --
> Pavel Tupitsyn
> GridGain Systems, Inc.
> www.gridgain.com
>


[jira] [Created] (IGNITE-2709) High contention on a cache key leads to high thread stack usage

2016-02-22 Thread Alexey Goncharuk (JIRA)
Alexey Goncharuk created IGNITE-2709:


 Summary: High contention on a cache key leads to high thread stack 
usage
 Key: IGNITE-2709
 URL: https://issues.apache.org/jira/browse/IGNITE-2709
 Project: Ignite
  Issue Type: Bug
  Components: cache
Affects Versions: ignite-1.4
Reporter: Alexey Goncharuk


Currently {{GridCacheMvccManager#onOwnerChanged}} callback notifies listeners 
synchronously. This means that the call stack size for a transaction commit is 
proportional to the size of MVCC candidates queue. On a big enough queue size 
this leads to a StackOverflowError (see the file attached).

I suggest the {{GridCacheMvccManager:158}} line be executed asynchronously 
after some (3-5) nested calls.

The change should be properly benchmarked.



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


Re: ODBC processor default behaviour

2016-02-22 Thread Valentin Kulichenko
I think the behavior of OdbcProcessor should be consistent with
RestProcessor. It tries a configurable range of ports, binds to the first
available and prints it out in the log.

-Val

On Sat, Feb 20, 2016 at 7:33 AM, Yakov Zhdanov  wrote:

> Not sure if it works. DB connection string should have certain port afaik.
>
> --Yakov
>
> 2016-02-20 18:26 GMT+03:00 Sergey Kozlov :
>
> > What's about to use the port range like TcpDiscoveryVmIpFinder?
> >
> > On Sat, Feb 20, 2016 at 6:22 PM, Yakov Zhdanov 
> > wrote:
> >
> > > How about outputting warning like and keep retrying in a background
> > thread?
> > >
> > > warning - "Failed to bind ODBC processor TCP server to port (retrying
> > every
> > > 2 sec) [port=ABC]
> > >
> > > --Yakov
> > >
> > > 2016-02-20 17:38 GMT+03:00 Igor Sapego :
> > >
> > > > Igniters,
> > > >
> > > > I'm currently working on the ODBC driver. It connects by TCP to the
> > > > OdbcProcessor
> > > > on the node side. OdbcProcessor is enabled by default and it starts
> TCP
> > > > server on the
> > > > specific TCP port or throws exception if the port is busy.
> > > >
> > > > The problem is that such behavior breaks tests that start more than
> one
> > > > node on the
> > > > same machine as the second node fails to start because ODBC port is
> > > already
> > > > taken
> > > > by the first node.
> > > >
> > > > Does anyone has ideas what is the best way to fix that?
> > > >
> > > > Best Regards,
> > > > Igor
> > > >
> > >
> >
> >
> >
> > --
> > Sergey Kozlov
> > GridGain Systems
> > www.gridgain.com
> >
>


[GitHub] ignite pull request: Ignite-2707 - Fixed skipStore flag handling.

2016-02-22 Thread agoncharuk
GitHub user agoncharuk opened a pull request:

https://github.com/apache/ignite/pull/508

Ignite-2707 - Fixed skipStore flag handling.



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-2707

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/508.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #508


commit 31f91e2959b5ebe25d876dfbbdd43165ff2ec48e
Author: Alexey Goncharuk 
Date:   2016-02-23T02:10:53Z

Ignite-2707 - Fixed skipStore flag handling.




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


Re: IGNITE-1144

2016-02-22 Thread Valentin Kulichenko
Hi,

Thanks for the pull request! I will take a look as soon as possible.

-Val

On Mon, Feb 22, 2016 at 9:14 AM, Dood@ODDO  wrote:

> Hello all,
>
> I was wondering if anyone can take a look at the PR I submitted for
> IGNITE-1144 [1]. It compiles and I think the code is good but the tests I
> submitted are failing - specifically, one test: I am using assertThrows()
> to make sure that an exception is thrown if affinityRun() is invoked on a
> queue that is not collocated. In the tests I basically set up a queue that
> has a configuration that invokes setCollocated(false) and then I invoke an
> affinityRun() with an "empty" job. For some reason the tests are failing
> with an error that the exception wasn't thrown. However, in this case I
> actually think that my test is bad and the PR code is good ;-). Can someone
> with more Java experience take a quick look?
>
> Thanks!
>
> [1] https://issues.apache.org/jira/browse/IGNITE-1144
>


[GitHub] ignite pull request: Ignite-2709 - Fixed stack overflow for conten...

2016-02-22 Thread agoncharuk
GitHub user agoncharuk opened a pull request:

https://github.com/apache/ignite/pull/509

Ignite-2709 - Fixed stack overflow for contented puts.



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-2709

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/509.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #509


commit 311dcc2e43a13635fe5dc181251c65186869383f
Author: Alexey Goncharuk 
Date:   2016-02-23T02:35:07Z

Ignite-2709 - Fixed stack overflow for contented puts.




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Created] (IGNITE-2710) Session not unbind from current request after invoke request.getSession().invalidate()

2016-02-22 Thread YuxuanWang (JIRA)
YuxuanWang created IGNITE-2710:
--

 Summary: Session not unbind from current request after invoke 
request.getSession().invalidate()
 Key: IGNITE-2710
 URL: https://issues.apache.org/jira/browse/IGNITE-2710
 Project: Ignite
  Issue Type: Bug
  Components: cache
Affects Versions: 1.5.0.final
 Environment: java8, tomcat8

Reporter: YuxuanWang


System.out.println(request.getSession().getId());
request.getSession().invalidate();
System.out.println(request.getSession().getId());

getSession() although return the same session after the invalidation.



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


Re: IGNITE-1144

2016-02-22 Thread Dood

Val,

All the test passed on TC - you can look at the PR at any time. Thanks!

On 2/22/2016 8:13 PM, Valentin Kulichenko wrote:

Hi,

Thanks for the pull request! I will take a look as soon as possible.

-Val

On Mon, Feb 22, 2016 at 9:14 AM, Dood@ODDO  wrote:


Hello all,

I was wondering if anyone can take a look at the PR I submitted for
IGNITE-1144 [1]. It compiles and I think the code is good but the tests I
submitted are failing - specifically, one test: I am using assertThrows()
to make sure that an exception is thrown if affinityRun() is invoked on a
queue that is not collocated. In the tests I basically set up a queue that
has a configuration that invokes setCollocated(false) and then I invoke an
affinityRun() with an "empty" job. For some reason the tests are failing
with an error that the exception wasn't thrown. However, in this case I
actually think that my test is bad and the PR code is good ;-). Can someone
with more Java experience take a quick look?

Thanks!

[1] https://issues.apache.org/jira/browse/IGNITE-1144