Namespacing the LTTNG_HOME env variable facilitates the work carried to
have a way to trace the tracer (lttng-sessiond). This also fits with
the work done lately to namespace lttng-ust.
The LTTNG_HOME environment variable is used by lttng-sessiond to setup
the whole tracing environment for the application to be traced. When
lttng-ust is loaded by the lttng-sessiond to be traced, the fact that it
reuse the `LTTNG_HOME` set for the lttng-sessiond prevent us from
specifying an external lttng-sessiond home.
Albeit it could be possible for the lttng-sessiond to "trace" itself
(self tracing), it make more sense, in our testing environment, to have
a supplementary lttng-sessiond handling the tracing of the
lttng-sessiond under testing.
Note that some work will be carried to limit the use of LTTNG_HOME to
setup the tracing environment by lttng-sessiond and liblttng-ctl APIs
but it will be a long effort. Providing `LTTNG_UST_HOME` allows us to
start dogfooding today.
`LTTNG_HOME` is still used as a fallback to `LTTNG_UST_HOME` to preserve
backward compatibility.
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I6aed21fd70d1b79b6768d237f59cc80612938d65
ENVIRONMENT VARIABLES
---------------------
ENVIRONMENT VARIABLES
---------------------
Alternative user's home directory. This variable is useful when the
user running the instrumented application has a non-writable home
directory.
+
Unix sockets used for the communication between `liblttng-ust` and the
LTTng session and consumer daemons (part of the LTTng-tools project)
Alternative user's home directory. This variable is useful when the
user running the instrumented application has a non-writable home
directory.
+
Unix sockets used for the communication between `liblttng-ust` and the
LTTng session and consumer daemons (part of the LTTng-tools project)
-are located in a specific directory under `$LTTNG_HOME` (or `$HOME` if
-`$LTTNG_HOME` is not set).
+are located in a specific directory under `$LTTNG_UST_HOME` (or `$HOME` if
+`$LTTNG_UST_HOME` is not set).
+
+NOTE: `$LTTNG_HOME` is also supported as a fallback of `$LTTNG_UST_HOME` for
+backward compatibility reason.
`LTTNG_UST_ALLOW_BLOCKING`::
If set, allow the application to retry event tracing when there's
`LTTNG_UST_ALLOW_BLOCKING`::
If set, allow the application to retry event tracing when there's
{ "LTTNG_UST_ALLOW_BLOCKING", LTTNG_ENV_SECURE, NULL, },
{ "HOME", LTTNG_ENV_SECURE, NULL, },
{ "LTTNG_HOME", LTTNG_ENV_SECURE, NULL, },
{ "LTTNG_UST_ALLOW_BLOCKING", LTTNG_ENV_SECURE, NULL, },
{ "HOME", LTTNG_ENV_SECURE, NULL, },
{ "LTTNG_HOME", LTTNG_ENV_SECURE, NULL, },
+ { "LTTNG_UST_HOME", LTTNG_ENV_SECURE, NULL, },
private static String getHomePath() {
/*
private static String getHomePath() {
/*
+ * The environment variable LTTNG_UST_HOME overrides LTTNG_HOME
+ * if present.
* The environment variable LTTNG_HOME overrides HOME if
* defined.
*/
* The environment variable LTTNG_HOME overrides HOME if
* defined.
*/
- String homePath = System.getenv("LTTNG_HOME");
+ String lttngUstHomePath = System.getenv("LTTNG_UST_HOME");
+ String lttngHomePath = System.getenv("LTTNG_HOME");
+
+ if (lttngUstHomePath != null) {
+ /*
+ * LTTNG_UST_HOME has priority over LTTNG_HOME and user
+ * home directory.
+ */
+ return lttngUstHomePath;
+ }
- if (homePath == null) {
- homePath = System.getProperty("user.home");
+ if (lttngHomePath != null) {
+ /* LTTNG_HOME has priority over user home directory. */
+ return lttngHomePath;
+
+ /* Default to the user home directory. */
+ return System.getProperty("user.home");
/*
* Returns the HOME directory path. Caller MUST NOT free(3) the returned
* pointer.
/*
* Returns the HOME directory path. Caller MUST NOT free(3) the returned
* pointer.
+ * The following env are checked in order of priority:
+ * 1 - LTTNG_UST_HOME
+ * 2 - LTTNG_HOME
+ * 3 - HOME
*/
static
const char *get_lttng_home_dir(void)
{
const char *val;
*/
static
const char *get_lttng_home_dir(void)
{
const char *val;
+ val = (const char *) lttng_ust_getenv("LTTNG_UST_HOME");
+ if (val != NULL) {
+ return val;
+ }
+
val = (const char *) lttng_ust_getenv("LTTNG_HOME");
if (val != NULL) {
return val;
}
val = (const char *) lttng_ust_getenv("LTTNG_HOME");
if (val != NULL) {
return val;
}
return (const char *) lttng_ust_getenv("HOME");
}
return (const char *) lttng_ust_getenv("HOME");
}
def _get_user_home_path():
def _get_user_home_path():
- # $LTTNG_HOME overrides $HOME if it exists
- return os.getenv('LTTNG_HOME', os.path.expanduser('~'))
+ # $LTTNG_UST_HOME overrides $LTTNG_HOME if it exist.
+ # In turn, $LTTNG_HOME overrides $HOME if it exists
+ return os.getenv('LTTNG_UST_HOME', os.getenv('LTTNG_HOME',
+ os.path.expanduser('~')))