1. clear out environment as best is possible before executing
anything. especially PATH and IFS are set to minimal base defaults.
also use clearenv() if available and unsetenv()
2. remove gdb method as it's just too dangerous. run it as normal as
the user and if the kernel / distro dny that - then sorry. too bad.
Summary: If cserve2 crashes, enlightenment_start will respawn it again.
Test Plan:
Start E18 (in Xephyr maybe) with E_CSERVE set.
Randomly kill evas_cserve2 and enlightenment, and log out from E.
I need review for this patch as I'm not sure about all the ptrace stuff
lying around.
Reviewers: cedric
CC: raster, zmike
Differential Revision: https://phab.enlightenment.org/D287
Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
In a proper systemd user session setup, enlightenment_start will be
gone. That is still not doable today and as I plan to roll more feature
in EFL regarding systemd, we need to prevent enlightenment to believe
it is the process started by systemd.
problem... it runs... mostly.. but is buggy.
svgs -> no load (generic loader issue?)
sometimes ie->data2 is null (why?)
font -> instead of normal bvold font.. i'm seeing an italic bold
font.... eek! :(
cserve2 worked well in smaller tests like elm and expedite.. it's not
having a happy day with e17 :(
SVN revision: 83871
here is a patch.
1. free() already null-checks the passed argument, so it is not
necessary to do 'if(x) free(x)'.
2. Moved some '{free(x); x = NULL}' to E_FREE.
3. In e_start_main.c, 'buf' is allocated with the size of the
two arguments + '=', so we don't need to check for lenght;
we should use sprintf().
thanks
Maxime Villard
SVN revision: 81364
NOTE: the new behaviour require a parent process,
here enlightenment_start, to watch over enlightenment.
It does use ptrace to monitor his child and track
what is going on. When a crash happen it ask gdb to
add the backtrace directly into .xsession-errors.
If you use systemd user session, you may want to offload
that work to systemd. You can do so, but don't forget to
pass -nopause to enlightenment when you start it.
WARNING: For all user, you will need to exit your
current session and start a fresh one for this new WBOD
to work at all. Just restarting Enlightenment will not
help you.
SVN revision: 78742
it's own utility (as per raster's request/idea). Remove explicit
x_clags in Makefile.am(s) as they are no longer needed.
NB: I added some additional libs to the precache stuffs (even tho it's
not used right now). Also a newer e_main (more optimized).
NB: IF you are brave and want to test this, build evas w/ xcb, build
ecore w/ xcb, then rebuild E. Also, disable building opengl in both
evas & ecore (it's not ready for public consumption when paired w/ xcb).
SVN revision: 61680
this should help us in near future:
* -valgrind[=MODE], to run under valgrind and toggle interesting
options as we often request users to give us valgrind logs but
they're often running valgrind on wrong binaries and with wrong
parameters. See enlightenment_start -help for more, but in sort:
-valgrind=all should give us enough information.
* -valgrind-log-file=path, so the log will not mix with lots of
output we do.
* debug: on crashes, always list traceback (execinfo/glibc
functions) and check if gdb exists, if so ask it to print out
traceback of all threads to stdout. gdb will be detached as soon
as messages were printed and everything should work without gdb as
well.
SVN revision: 41309
on my p4 3.4ghz + reiser3fs IO Wait time went from 2.6 to 1.9 seconds
(total login time went from 3.01511 to 2.29971, with 100% cached login time
being 0.41809)
on my core 2 duo laptop + ext3fs IO Wait time went from 2.05 to 1.15 seconds
(total login time went from 2.50988 to 1.60785, with 100% cached login time
being 0.45850)
this should speed up e's login a bit... i hope.
note - it is adaptive. it needs you to log in at least once using the current
code as it traps and logs certain file accesses and needs that log to replay
next login.
SVN revision: 26742
somewhere where its bin dir is not in $PATH and lib dir is not in ld.so.conf
OR in $LD_LIBRARY_PATH. this will quickly determine prefix set up 2 env vars
and launch e itself.
SVN revision: 21028