With Subversion 1.14.5 (r1922182) from subversion 1.14.5-6 Debian
package (Debian/unstable):
During a svn merge with conflicts, svn crashed with a segmentation fault:
Core was generated by `/usr/bin/svn merge \^/config/host/common-debian/etc/X11
etc/X11'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 string_compare (str1=0x7fba4d1aaa38
"cventin:/etc/X11/Xsession.d/01gtk3-nocsd", str2=<error reading variable:
Cannot access memory at address 0x0>, len1=40, len2=<error reading variable:
Cannot access memory at address 0x8>) at ../subversion/libsvn_subr/string.c:151
Unfortunately, I cannot reproduce the crash with the same command after
a revert. But it appears that a network connection is involved, and I'm
wondering whether the result depends on the transmitted data.
The backtrace:
Thread 1 (Thread 0x7fba4d3567c0 (LWP 4087040)):
#0 string_compare (str1=0x7fba4d1aaa38
"cventin:/etc/X11/Xsession.d/01gtk3-nocsd", str2=<error reading variable:
Cannot access memory at address 0x0>, len1=40, len2=<error reading variable:
Cannot access memory at address 0x8>) at ../subversion/libsvn_subr/string.c:151
No locals.
#1 svn_string_compare (str1=str1@entry=0x7fba4d1aaa28, str2=str2@entry=0x0) at
../subversion/libsvn_subr/string.c:315
No locals.
#2 0x00007fba4e7e5016 in apply_single_prop_add (result_val=<synthetic
pointer>, conflict_remains=<synthetic pointer>, did_merge=<synthetic pointer>,
propname=0x7fba4d1c1068 "source", pristine_val=<optimized out>, new_val=0x0,
working_val=0x7fba4d1aaa28, result_pool=<optimized out>,
scratch_pool=<optimized out>) at ../subversion/libsvn_wc/props.c:900
No locals.
#3 svn_wc__merge_props (conflict_skel=conflict_skel@entry=0x7fff112e95d0,
state=state@entry=0x7fff112e9790,
new_actual_props=new_actual_props@entry=0x7fff112e95e8, db=0x7fba4d2e7128,
local_abspath=local_abspath@entry=0x7fba4d279a48
"/home/vlefevre/wd/config/host/common-debian/old-etc/X11-Xsession.d/01gtk3-nocsd",
server_baseprops=0x7fba4d1ca818, pristine_props=0x7fba4d1aa900,
actual_props=0x7fba4d1aa900, propchanges=0x7fba4d1c1390,
result_pool=0x7fba4d245028, scratch_pool=0x7fba4d245028) at
../subversion/libsvn_wc/props.c:1290
svn_err__temp = <optimized out>
incoming_change = <optimized out>
propname = 0x7fba4d1c1068 "source"
from_val = <optimized out>
working_val = 0x7fba4d1aaa28
conflict_remains = 0
base_val = <optimized out>
to_val = 0x0
result_val = 0x7fba4d1aaa28
did_merge = 0
iterpool = 0x7fba4d1a2028
i = 0
conflict_props = 0x0
their_props = 0x7fba4d1aabb8
#4 0x00007fba4e7df5e8 in svn_wc_merge5
(merge_content_outcome=merge_content_outcome@entry=0x7fff112e9788,
merge_props_outcome=merge_props_outcome@entry=0x7fff112e9790,
wc_ctx=0x7fba4d2e7110, left_abspath=0x7fba4d1cceb8
"/home/vlefevre/wd/.svn/tmp/svn-3Woy2b", right_abspath=0x7fba4d1c2558
"/home/vlefevre/wd/.svn/tmp/svn-E28yNK",
target_abspath=target_abspath@entry=0x7fba4d279a48
"/home/vlefevre/wd/config/host/common-debian/old-etc/X11-Xsession.d/01gtk3-nocsd",
left_label=0x0, right_label=0x0, target_label=0x0, left_version=0x0,
right_version=0x0, dry_run=0, diff3_cmd=0x0, merge_options=0x0,
original_props=0x7fba4d1ca818, prop_diff=0x7fba4d1c1390, conflict_func=0x0,
conflict_baton=0x0, cancel_func=0x0, cancel_baton=0x0,
scratch_pool=0x7fba4d245028) at ../subversion/libsvn_wc/merge.c:1335
svn_err__temp = <optimized out>
i = <optimized out>
dir_abspath = <optimized out>
work_items = 0x7fba4d279a48
conflict_skel = 0x0
pristine_props = 0x7fba4d1aa900
old_actual_props = 0x7fba4d1aa900
new_actual_props = 0x7fba4d1aaa98
kind = svn_node_file
#5 0x00007fba4e89070b in resolve_incoming_move_file_text_merge
(option=<optimized out>, conflict=0x7fba4d228610, ctx=0x7fba4d2e7040,
scratch_pool=0x7fba4d245028) at ../subversion/libsvn_client/conflicts.c:8728
option_id = svn_client_conflict_option_incoming_move_file_text_merge
victim_abspath = 0x7fba4d228688
"/home/vlefevre/wd/config/host/ensl.cventin/etc/X11/Xsession.d/01gtk3-nocsd"
merge_source_abspath = <optimized out>
local_change = svn_wc_conflict_reason_edited
operation = svn_wc_operation_merge
lock_abspath = 0x7fba4d1cabd0 "/home/vlefevre/wd/config/host"
err = <optimized out>
repos_root_url = 0x7fba4d279298 "svn+ssh://mysvn"
incoming_old_repos_relpath = 0x7fba4d2792a8
"config/host/common-debian/etc/X11/Xsession.d/01gtk3-nocsd"
incoming_old_pegrev = 182258
incoming_new_repos_relpath = 0x7fba4d279348
"config/host/common-debian/etc/X11/Xsession.d/01gtk3-nocsd"
incoming_new_pegrev = 187530
wc_tmpdir = 0x7fba4d1cbcf0 "/home/vlefevre/wd/.svn/tmp"
ancestor_abspath = 0x7fba4d1cceb8
"/home/vlefevre/wd/.svn/tmp/svn-3Woy2b"
ancestor_stream = 0x7fba4d1ca220
ancestor_props = 0x7fba4d1ca818
victim_props = 0x7fba4d1caea8
move_target_props = 0x7fba4d1c1268
ancestor_url = <optimized out>
corrected_url = 0x0
ra_session = 0x7fba4d1c3240
merge_content_outcome = 1293690304
merge_props_outcome = svn_wc_notify_state_changed
propdiffs = 0x7fba4d1c1390
details = <optimized out>
possible_moved_to_abspaths = <optimized out>
moved_to_abspath = 0x7fba4d279a48
"/home/vlefevre/wd/config/host/common-debian/old-etc/X11-Xsession.d/01gtk3-nocsd"
incoming_abspath = 0x7fba4d1c2558
"/home/vlefevre/wd/.svn/tmp/svn-E28yNK"
#6 0x00007fba4e895812 in svn_client_conflict_tree_resolve_by_id
(conflict=conflict@entry=0x7fba4d228610,
option_id=option_id@entry=svn_client_conflict_option_incoming_move_file_text_merge,
ctx=ctx@entry=0x7fba4d2e7040, scratch_pool=scratch_pool@entry=0x7fba4d245028)
at ../subversion/libsvn_client/conflicts.c:12901
svn_err__temp = <optimized out>
resolution_options = 0x7fba4d1cb7a8
option = <optimized out>
#7 0x0000557499c9fe88 in mark_conflict_resolved (conflict=0x7fba4d228610,
option_id=svn_client_conflict_option_incoming_move_file_text_merge,
text_conflicted=0, propname=0x0, tree_conflicted=1, path_prefix=0x7fba4d2ebfa0
"/home/vlefevre/wd/config/host/ensl.cventin", conflict_stats=<optimized out>,
ctx=0x7fba4d2e7040, scratch_pool=0x7fba4d245028) at
../subversion/svn/conflict-callbacks.c:860
svn_err__temp = <optimized out>
local_relpath = 0x7fba4d2286b3 "etc/X11/Xsession.d/01gtk3-nocsd"
svn_err__temp = <optimized out>
svn_err__temp = <optimized out>
#8 handle_tree_conflict (resolved=<synthetic pointer>, postponed=<synthetic
pointer>, quit=<optimized out>, printed_description=<synthetic pointer>,
conflict=0x7fba4d228610, path_prefix=<optimized out>, pb=<optimized out>,
conflict_stats=<optimized out>, ctx=0x7fba4d2e7040,
scratch_pool=0x7fba4d245028) at ../subversion/svn/conflict-callbacks.c:1812
err = <optimized out>
root_cause = <optimized out>
iterpool = <optimized out>
tree_conflict_options = 0x7fba4d1cb3f0
option_id = svn_client_conflict_option_unspecified
local_abspath = 0x7fba4d228688
"/home/vlefevre/wd/config/host/ensl.cventin/etc/X11/Xsession.d/01gtk3-nocsd"
conflict_description = 0x7fba4d246868 "File merged
from\n'^/config/host/common-debian/etc/X11/Xsession.d/01gtk3-nocsd@182258'\nto\n'^/config/host/common-debian/etc/X11/Xsession.d/01gtk3-nocsd@187530'\nwas
moved to '^/config/host/common-debian/"...
local_change_description = 0x7fba4e8e24e8 "A file which differs from
the corresponding file on the merge source branch was found in the working
copy."
incoming_change_description = 0x7fba4d246758 "File merged
from\n'^/config/host/common-debian/etc/X11/Xsession.d/01gtk3-nocsd@182258'\nto\n'^/config/host/common-debian/etc/X11/Xsession.d/01gtk3-nocsd@187530'\nwas
moved to '^/config/host/common-debian/"...
possible_moved_to_repos_relpaths = 0x7fba4d1cb608
possible_moved_to_abspaths = 0x7fba4d1cb670
all_options_are_dumb = 0
recommended_option = <optimized out>
repos_move_target_chosen = 0
wc_move_target_chosen = 0
#9 resolve_conflict_interactively (external_failed=0x7fba4d2286c3,
resolved=<synthetic pointer>, postponed=<synthetic pointer>, quit=<optimized
out>, printed_summary=<optimized out>, printed_description=<synthetic pointer>,
conflict=<optimized out>, editor_cmd=<optimized out>, config=<optimized out>,
path_prefix=<optimized out>, pb=<optimized out>, conflict_stats=<optimized
out>, ctx=0x7fba4d2e7040, scratch_pool=<optimized out>) at
../subversion/svn/conflict-callbacks.c:2021
svn_err__temp = <optimized out>
text_conflicted = 0
props_conflicted = 0x7fba4d2450a0
tree_conflicted = 1
merged_propval = <optimized out>
#10 svn_cl__resolve_conflict (quit=quit@entry=0x7fff112ea25c,
external_failed=external_failed@entry=0x7fff112ea260,
printed_summary=printed_summary@entry=0x7fff112ea264, conflict=<optimized out>,
accept_which=<optimized out>, editor_cmd=0x0, path_prefix=0x7fba4d2ebfa0
"/home/vlefevre/wd/config/host/ensl.cventin", pb=0x7fba4d2ebe90,
conflict_stats=0x7fba4e9030a0, ctx=0x7fba4d2e7040, scratch_pool=0x7fba4d227028)
at ../subversion/svn/conflict-callbacks.c:2264
resolved = 0
printed_description = <optimized out>
err = <optimized out>
iterpool = <optimized out>
postponed = <optimized out>
text_conflicted = 0
props_conflicted = 0x7fba4d2793b0
tree_conflicted = 1
local_abspath = <optimized out>
option_id = <optimized out>
#11 0x0000557499cb1237 in conflict_walker (baton=0x7fff112ea250,
conflict=<optimized out>, scratch_pool=<optimized out>) at
../subversion/svn/resolve-cmd.c:62
svn_err__temp = <optimized out>
cwb = 0x7fff112ea250
#12 0x00007fba4e896ba5 in conflict_status_walker (baton=0x7fff112ea180,
local_abspath=0x7fba4d227238
"/home/vlefevre/wd/config/host/ensl.cventin/etc/X11/Xsession.d/01gtk3-nocsd",
status=<optimized out>, scratch_pool=0x7fba4d227028) at
../subversion/libsvn_client/conflicts.c:13385
cswb = 0x7fff112ea180
conflict = 0x7fba4d228610
err = <optimized out>
tree_conflicted = 1
#13 0x00007fba4e7eb6ca in one_child_status (wb=0x7fff112ea0b0,
local_abspath=0x7fba4d227238
"/home/vlefevre/wd/config/host/ensl.cventin/etc/X11/Xsession.d/01gtk3-nocsd",
parent_abspath=<optimized out>, info=0x7fba4d2276a8, dirent=0x7fba4d227d10,
dir_repos_root_url=0x7fba4d227ef8 "svn+ssh://mysvn",
dir_repos_relpath=0x7fba4d227ec8 "config/host/ensl.cventin/etc/X11/Xsession.d",
dir_repos_uuid=0x7fba4d227f08 "99759db8-4ec0-0310-8bf9-df86780d22d8",
unversioned_tree_conflicted=0, collected_ignore_patterns=0x7fff112ea0a8,
ignore_patterns=0x7fba4d227400, depth=svn_depth_empty, get_all=0, no_ignore=1,
status_func=0x7fba4e896b10 <conflict_status_walker>,
status_baton=0x7fff112ea180, cancel_func=0x7fba4e6e20f0 <check_cancel>,
cancel_baton=0x0, result_pool=0x7fba4d227028, scratch_pool=0x7fba4d227028) at
../subversion/libsvn_wc/status.c:1114
svn_err__temp = <optimized out>
conflicted = 1
#14 0x00007fba4e7eda59 in get_child_status (wb=0x7fff112ea0b0,
local_abspath=0x7fba4d227238
"/home/vlefevre/wd/config/host/ensl.cventin/etc/X11/Xsession.d/01gtk3-nocsd",
info=0x7fba4d2276a8, dirent=0x7fba4d227d10, ignore_patterns=0x7fba4d227400,
get_all=0, status_func=0x7fba4e896b10 <conflict_status_walker>,
status_baton=0x7fff112ea180, cancel_func=0x7fba4e6e20f0 <check_cancel>,
cancel_baton=0x0, scratch_pool=0x7fba4d227028) at
../subversion/libsvn_wc/status.c:1446
svn_err__temp = <optimized out>
dir_repos_root_url = 0x7fba4d227ef8 "svn+ssh://mysvn"
dir_repos_relpath = 0x7fba4d227ec8
"config/host/ensl.cventin/etc/X11/Xsession.d"
dir_repos_uuid = 0x7fba4d227f08 "99759db8-4ec0-0310-8bf9-df86780d22d8"
dir_info = 0x7fba4d227d98
collected_ignore_patterns = 0x0
parent_abspath = 0x7fba4d227d28
"/home/vlefevre/wd/config/host/ensl.cventin/etc/X11/Xsession.d"
#15 svn_wc__internal_walk_status (db=<optimized out>,
local_abspath=local_abspath@entry=0x7fba4d227238
"/home/vlefevre/wd/config/host/ensl.cventin/etc/X11/Xsession.d/01gtk3-nocsd",
depth=depth@entry=svn_depth_infinity, get_all=get_all@entry=0,
no_ignore=no_ignore@entry=0, ignore_text_mods=ignore_text_mods@entry=1,
ignore_patterns=0x7fba4d227400, status_func=0x7fba4e896b10
<conflict_status_walker>, status_baton=0x7fff112ea180,
cancel_func=0x7fba4e6e20f0 <check_cancel>, cancel_baton=0x0,
scratch_pool=0x7fba4d227028) at ../subversion/libsvn_wc/status.c:2712
wb = {db = 0x7fba4d2e7128, target_abspath = 0x7fba4d227238
"/home/vlefevre/wd/config/host/ensl.cventin/etc/X11/Xsession.d/01gtk3-nocsd",
ignore_text_mods = 1, check_working_copy = 1, externals = 0x7fba4d227af8,
repos_root = 0x0, repos_locks = 0x0}
dirent = 0x7fba4d227d10
info = 0x7fba4d2276a8
err = <optimized out>
svn_err__temp = <optimized out>
#16 0x00007fba4e7edbac in svn_wc_walk_status (wc_ctx=<optimized out>,
local_abspath=local_abspath@entry=0x7fba4d227238
"/home/vlefevre/wd/config/host/ensl.cventin/etc/X11/Xsession.d/01gtk3-nocsd",
depth=depth@entry=svn_depth_infinity, get_all=get_all@entry=0,
no_ignore=no_ignore@entry=0, ignore_text_mods=ignore_text_mods@entry=1,
ignore_patterns=0x0, status_func=0x7fba4e896b10 <conflict_status_walker>,
status_baton=0x7fff112ea180, cancel_func=0x7fba4e6e20f0 <check_cancel>,
cancel_baton=0x0, scratch_pool=0x7fba4d227028) at
../subversion/libsvn_wc/status.c:2752
No locals.
#17 0x00007fba4e896d27 in svn_client_conflict_walk
(local_abspath=0x7fba4d227238
"/home/vlefevre/wd/config/host/ensl.cventin/etc/X11/Xsession.d/01gtk3-nocsd",
depth=svn_depth_infinity,
conflict_walk_func=conflict_walk_func@entry=0x557499cb1200 <conflict_walker>,
conflict_walk_func_baton=conflict_walk_func_baton@entry=0x7fff112ea250,
ctx=ctx@entry=0x7fba4d2e7040, scratch_pool=scratch_pool@entry=0x7fba4d227028)
at ../subversion/libsvn_client/conflicts.c:13445
cswb = {conflict_walk_func = 0x557499cb1200 <conflict_walker>,
conflict_walk_func_baton = 0x7fff112ea250, ctx = 0x7fba4d2e7040, notify_func =
0x557499caba20 <notify>, notify_baton = 0x7fba4d2e7250,
resolved_a_tree_conflict = 0, unresolved_tree_conflicts = 0x7fba4d227288}
iterpool = 0x0
err = 0x0
#18 0x0000557499cb14db in svn_cl__walk_conflicts (targets=0x7fba4d2ebe38,
conflict_stats=conflict_stats@entry=0x7fba4e9030a0,
opt_state=opt_state@entry=0x7fff112ea560, ctx=ctx@entry=0x7fba4d2e7040,
scratch_pool=scratch_pool@entry=0x7fba4e903028) at
../subversion/svn/resolve-cmd.c:129
target = 0x7fba4d2eba18 "etc/X11/Xsession.d/01gtk3-nocsd"
local_abspath = 0x7fba4d227238
"/home/vlefevre/wd/config/host/ensl.cventin/etc/X11/Xsession.d/01gtk3-nocsd"
conflict = 0x3
had_error = <optimized out>
pb = 0x7fba4d2ebe90
cwb = {ctx = 0x7fba4d2e7040, accept_which = svn_cl__accept_unspecified,
quit = 0, external_failed = 0, printed_summary = 1, editor_cmd = 0x0,
path_prefix = 0x7fba4d2ebfa0 "/home/vlefevre/wd/config/host/ensl.cventin", pb =
0x7fba4d2ebe90, conflict_stats = 0x7fba4e9030a0}
path_prefix = 0x7fba4d2ebfa0
"/home/vlefevre/wd/config/host/ensl.cventin"
err = <optimized out>
i = 0
iterpool = 0x7fba4d227028
#19 0x0000557499caa29d in svn_cl__merge (os=<optimized out>, baton=<optimized
out>, pool=0x7fba4e903028) at ../subversion/svn/merge-cmd.c:555
svn_err__temp = <optimized out>
opt_state = 0x7fff112ea560
conflict_stats = 0x7fba4e9030a0
ctx = 0x7fba4d2e7040
targets = 0x7fba4d2e8de0
sourcepath1 = 0x7fba4d2e8e80
"svn+ssh://mysvn/config/host/common-debian/etc/X11"
sourcepath2 = 0x7fba4d2e8e80
"svn+ssh://mysvn/config/host/common-debian/etc/X11"
targetpath = 0x7fba4d2e7db8 "etc/X11"
two_sources_specified = <optimized out>
merge_err = <optimized out>
first_range_start = <optimized out>
first_range_end = <optimized out>
peg_revision1 = {kind = svn_opt_revision_head, value = {number =
140438156499406, date = 140438156499406}}
peg_revision2 = {kind = svn_opt_revision_unspecified, value = {number =
140438135561288, date = 140438135561288}}
options = <optimized out>
ranges_to_merge = <optimized out>
conflicted_paths = 0x7fba4d2ebe38
has_explicit_target = <optimized out>
retry = <optimized out>
#20 0x0000557499cb9c57 in sub_main (exit_code=exit_code@entry=0x7fff112ea7c4,
argc=argc@entry=4, cmdline_argv=cmdline_argv@entry=0x7fff112ea8f8,
pool=pool@entry=0x7fba4e903028) at ../subversion/svn/svn.c:3263
err = <optimized out>
opt_id = 32698
os = 0x7fba4e903520
opt_state = {revision_ranges = 0x7fba4e9034f8, start_revision = {kind =
svn_opt_revision_unspecified, value = {number = 0, date = 0}}, end_revision =
{kind = svn_opt_revision_unspecified, value = {number = 0, date = 0}},
used_change_arg = 0, used_revision_arg = 0, limit = 0, depth =
svn_depth_unknown, no_unlock = 0, message = 0x0, force = 0, force_log = 0,
incremental = 0, quiet = 0, non_interactive = 0, version = 0, verbose = 0,
update = 0, filedata = 0x0, encoding = 0x0, help = 0, auth_username = 0x0,
auth_password = 0x0, auth_password_from_stdin = 0, extensions = 0x0, targets =
0x0, xml = 0, no_ignore = 0, no_auth_cache = 0, diff = {diff_cmd = 0x0,
internal_diff = 0, no_diff_added = 0, no_diff_deleted = 0, show_copies_as_adds
= 0, notice_ancestry = 0, summarize = 0, use_git_diff_format = 0,
ignore_properties = 0, properties_only = 0, patch_compatible = 0},
ignore_ancestry = 0, ignore_externals = 0, stop_on_copy = 0, dry_run = 0,
revprop = 0, merge_cmd = 0x0, editor_cmd = 0x0, record_only = 0, old_target =
0x0, new_target = 0x0, relocate = 0, config_dir = 0x0, config_options = 0x0,
autoprops = 0, no_autoprops = 0, native_eol = 0x0, remove = 0, changelists =
0x7fba4e903590, keep_changelists = 0, keep_local = 0, all_revprops = 0,
no_revprops = 0, revprop_table = 0x0, parents = 0, use_merge_history = 0,
accept_which = svn_cl__accept_unspecified, show_revs =
svn_cl__show_revs_invalid, set_depth = svn_depth_unknown, reintegrate = 0,
trust_server_cert_unknown_ca = 0, trust_server_cert_cn_mismatch = 0,
trust_server_cert_expired = 0, trust_server_cert_not_yet_valid = 0,
trust_server_cert_other_failure = 0, strip = 0, ignore_keywords = 0,
reverse_diff = 0, ignore_whitespace = 0, show_diff = 0, allow_mixed_rev = 0,
include_externals = 0, show_inherited_props = 0, search_patterns = 0x0,
mergeinfo_log = 0, remove_unversioned = 0, remove_ignored = 0, remove_added =
0, no_newline = 0, show_passwords = 0, pin_externals = 0, show_item = 0x0,
adds_as_modification = 0, vacuum_pristines = 0, drop = 0, file_size_unit =
SVN_CL__SIZE_UNIT_NONE, viewspec = svn_cl__viewspec_unspecified}
ctx = 0x7fba4d2e7040
received_opts = <optimized out>
exp_cmds = <optimized out>
i = <optimized out>
subcommand = 0x557499cee160 <svn_cl.cmd_table_main+33120>
dash_F_arg = <optimized out>
command_baton = {opt_state = 0x7fff112ea560, conflict_stats =
0x7fba4e9030a0, ctx = 0x7fba4d2e7040}
ab = 0x7fba4d2e7778
cfg_config = 0x7fba4e904e80
descend = <optimized out>
interactive_conflicts = 1
force_interactive = <optimized out>
conflict_stats = <optimized out>
use_notifier = <optimized out>
reading_file_from_stdin = <optimized out>
changelists = <optimized out>
cfg_hash = 0x7fba4e903cf8
buf = {pool = 0x7fba4e903028, data = 0x7fba4e9034f8, size = 0}
read_pass_from_stdin = <optimized out>
argv = 0x7fff112ea8f8
#21 0x0000557499c9987b in main (argc=4, argv=0x7fff112ea8f8) at
../subversion/svn/svn.c:3348
pool = 0x7fba4e903028
exit_code = 0
err = <optimized out>
--
Vincent Lefèvre <[email protected]> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Pascaline project (LIP, ENS-Lyon)