I think we should still keep System property and Environment variable
check. Our product has a user base that depends on these properties and
changing them at will is not an option.

I do agree that the product should not start if IGNITE_HOME cannot be
calculated, but I still do not understand how this could be possible.
Setting it to TMP directory seems vary flaky and should be disabled.

This seems to be a blocker for 2.4 release and needs to be fixed. Do we
have an appropriate ticket for this?

D.

On Tue, Jan 30, 2018 at 2:52 AM, Stanislav Lukyanov <stanlukya...@gmail.com>
wrote:

> I checked the code handling the IGNITE_HOME and persistent storage paths,
> and here is what the algorithm looks like.
>
> For IGNITE_HOME the following is checked in order; if on any step a value
> is found then we use it.
> - IgniteHome in IgniteConfiguration
> - IGNITE_HOME system property
> - IGNITE_HOME environment variable
> - Current working directory (user.dir) and all its ancestors (all
> directories are checked to have “bin/” and “config/”)
> - Class path entry containing ignite-core classes and all its ancestors
>
> After that, the working directory will be created at one of the following
> paths
> - WorkingDirectory in IgniteConfiguration, if set
> - ${IGNITE_HOME}/work, if IGNITE_HOME could be calculated previously
> - ${java.io.tmpdir}/work
>
> Persistent storage will be stored in the working directory, unless
> StoragePath are specified in the config
> (same for WAL and WalPath).
>
> The issue here is that if we’ve ended up having persistent DB in the
> working directory in the /tmp,
> then persistence files will be cleared upon restart.
> Also, IgniteConfiguration::getIgniteHome claims that Igntie fails if
> IGNITE_HOME is not set, but that’s not the case.
>
> So, how about actually disallowing to run Ignite when IGNITE_HOME can’t be
> calculated? Using /tmp for working
> directory seems to be an obscure and potentially harmful scenario.
> IgniteConfiguration’s documentation can also be adjusted to specify actual
> steps used to find IgniteHome and WorkingDirectory
> if they aren’t set explicitly.
> Additionally, I’d suggest not to promote setting IGNITE_HOME system
> property and environment variable
> (e.g. let’s remove it from readmeio). IgniteConfiguration seems to be the
> most straightforward way to configure Ignite,
> and system properties should be used as a backup plan when convenient.
>
> WDYT?
>
> Thanks,
> Stan
>
> From: Denis Magda
> Sent: 30 января 2018 г. 3:38
> To: dev@ignite.apache.org
> Subject: Re: IGNITE_HOME for persistence
>
> No we don’t. I’ve never touched IGNITE_HOME variable for any other purpose.
>
> As it was suggested, the reported should share the project to reproduce
> his scenario.
>
> —
> Denis
>
> > On Jan 26, 2018, at 9:05 PM, Dmitriy Setrakyan <d...@gridgain.com> wrote:
> >
> > Igniters,
> >
> > I have just stumbled upon this post on SO:
> > https://stackoverflow.com/questions/48434929/apache-
> ignite-persistent-storage
> >
> > Do we require IGNITE_HOME to be set if the persistence is enabled? If
> yes,
> > do we check for it on startup?
> >
> > D.
>
>
>

Reply via email to