Bug#656406: epiphany-browser process hangs and eats 100% CPU Time after clicking a hashtag link on Twitter
Alois Mahdal
Alois.Mahdal at zxcvb.cz
Thu Jan 19 01:14:05 UTC 2012
Package: epiphany-browser
Version: 3.2.1-2
Severity: important
After clicking a hashtag from thes #sopastrike Twitter page[1], Epiphany frezes, eating 96-100% CPU time (as reported by System Monitor).
URLs of the links seem to differ only in letter case for the tag. However, calling Epiphay directly with a link that caused freeze before does not reproduce the issue--the page is open normally and freeze can be reproduced again by clicking on another link.
1: https://twitter.com/#!/search/%23sopastrike
Appending gdb.txt.
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 3.0.0-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages epiphany-browser depends on:
ii dbus-x11 1.4.16-1
ii epiphany-browser-data 3.2.1-2
ii gnome-icon-theme 3.2.1.2-1
ii gsettings-desktop-schemas 3.2.0-2
ii iso-codes 3.31-1
ii libavahi-client3 0.6.30-5
ii libavahi-common3 0.6.30-5
ii libavahi-gobject0 0.6.30-5
ii libc6 2.13-24
ii libcairo2 1.10.2-6.2
ii libgdk-pixbuf2.0-0 2.24.0-2
ii libgirepository-1.0-1 1.31.1-1
ii libglib2.0-0 2.30.2-4
ii libgnome-keyring0 3.2.2-1
ii libgtk-3-0 3.2.3-1
ii libice6 2:1.0.7-2
ii libnotify4 0.7.4-1
ii libnspr4-0d 4.8.9-1
ii libnss3-1d 3.13.1.with.ckbi.1.88-1
ii libpango1.0-0 1.29.4-2
ii libseed-gtk3-0 3.0.0-2
ii libsm6 2:1.2.0-2
ii libsoup-gnome2.4-1 2.34.3-1
ii libsoup2.4-1 2.34.3-1
ii libwebkitgtk-3.0-0 1.6.1-5+b1
ii libx11-6 2:1.4.4-4
ii libxml2 2.7.8.dfsg-5.1
ii libxslt1.1 1.1.26-8
Versions of packages epiphany-browser recommends:
ii ca-certificates 20111211
ii evince 3.2.1-1
ii yelp 3.2.1+dfsg-1+b1
Versions of packages epiphany-browser suggests:
ii epiphany-extensions 3.2.0-2
-- no debconf information
-------------- next part --------------
#0 WebCore::RenderView::containingBlock (this=0x7fffe497d420) at ../Source/WebCore/rendering/RenderView.cpp:269
No locals.
#1 0x00007ffff524002c in inContainingBlockChain (endLayer=0x7fff957457d8, startLayer=0x7fff8af224d8) at ../Source/WebCore/rendering/RenderLayer.cpp:2562
currentBlock = <optimized out>
#2 clipToRect (rule=WebCore::IncludeSelfForBorderRadius, context=0x7fffffffc150, rootLayer=0x7fffe497d560, this=0x7fff8af224d8, paintDirtyRect=<optimized out>, clipRect=<optimized out>) at ../Source/WebCore/rendering/RenderLayer.cpp:2585
layer = 0x7fff957457d8
#3 WebCore::RenderLayer::clipToRect (this=0x7fff8af224d8, rootLayer=0x7fffe497d560, context=0x7fffffffc150, paintDirtyRect=<optimized out>, clipRect=<optimized out>, rule=WebCore::IncludeSelfForBorderRadius) at ../Source/WebCore/rendering/RenderLayer.cpp:2570
No locals.
#4 0x00007ffff5249d7b in WebCore::RenderLayer::paintLayer (this=0x7fff8af224d8, rootLayer=0x7fffe497d560, p=0x7fffffffc150, paintDirtyRect=<optimized out>, paintBehavior=0, paintingRoot=<optimized out>, overlapTestRequests=0x7fffffffbf20, paintFlags=0) at ../Source/WebCore/rendering/RenderLayer.cpp:2771
paintInfo = {context = 0x7fffffffc150, rect = {m_location = {m_x = 177, m_y = 60}, m_size = {m_width = 384, m_height = 613}}, phase = WebCore::PaintPhaseBlockBackground, forceBlackText = false, paintingRoot = 0x0, outlineObjects = 0x0, overlapTestRequests = 0x0}
haveTransparency = false
layerBounds = {m_location = {m_x = 179, m_y = 60}, m_size = {m_width = 380, m_height = 609}}
damageRect = {m_rect = {m_location = {m_x = 177, m_y = 60}, m_size = {m_width = 384, m_height = 613}}, m_hasRadius = false}
paintOffset = {m_x = 139, m_y = 60}
shouldPaint = true
localPaintFlags = 0
outlineRect = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
paintingRootForRenderer = 0x0
forceBlackText = false
clipRectToApply = {m_rect = {m_location = {m_x = 179, m_y = 60}, m_size = {m_width = 380, m_height = 609}}, m_hasRadius = true}
selectionOnly = false
paintingOverlayScrollbars = false
#5 0x00007ffff524ab6f in WebCore::RenderLayer::paintList (this=0x7fff8b840120, list=0x7fff92f0efd8, rootLayer=0x7fffe497d560, p=0x7fffffffc150, paintDirtyRect=..., paintBehavior=0, paintingRoot=0x0, overlapTestRequests=0x7fffffffbf20, paintFlags=0) at ../Source/WebCore/rendering/RenderLayer.cpp:2840
childLayer = <optimized out>
i = <optimized out>
#6 0x00007ffff52498ac in WebCore::RenderLayer::paintLayer (this=0x7fff8b840120, rootLayer=0x7fffe497d560, p=0x7fffffffc150, paintDirtyRect=<optimized out>, paintBehavior=0, paintingRoot=<optimized out>, overlapTestRequests=0x7fffffffbf20, paintFlags=0) at ../Source/WebCore/rendering/RenderLayer.cpp:2802
haveTransparency = false
layerBounds = {m_location = {m_x = 0, m_y = 60}, m_size = {m_width = 1258, m_height = 609}}
damageRect = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
paintOffset = {m_x = 0, m_y = 0}
shouldPaint = <optimized out>
localPaintFlags = 0
outlineRect = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
paintingRootForRenderer = 0x0
forceBlackText = false
clipRectToApply = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
selectionOnly = false
paintingOverlayScrollbars = false
#7 0x00007ffff524ab6f in WebCore::RenderLayer::paintList (this=0x7fff957457d8, list=0x7fff982743c0, rootLayer=0x7fffe497d560, p=0x7fffffffc150, paintDirtyRect=..., paintBehavior=0, paintingRoot=0x0, overlapTestRequests=0x7fffffffbf20, paintFlags=0) at ../Source/WebCore/rendering/RenderLayer.cpp:2840
childLayer = <optimized out>
i = <optimized out>
#8 0x00007ffff52498ac in WebCore::RenderLayer::paintLayer (this=0x7fff957457d8, rootLayer=0x7fffe497d560, p=0x7fffffffc150, paintDirtyRect=<optimized out>, paintBehavior=0, paintingRoot=<optimized out>, overlapTestRequests=0x7fffffffbf20, paintFlags=0) at ../Source/WebCore/rendering/RenderLayer.cpp:2802
haveTransparency = false
layerBounds = {m_location = {m_x = 169, m_y = 60}, m_size = {m_width = 920, m_height = 2259}}
damageRect = {m_rect = {m_location = {m_x = 169, m_y = 60}, m_size = {m_width = 920, m_height = 617}}, m_hasRadius = false}
paintOffset = {m_x = 129, m_y = 0}
shouldPaint = <optimized out>
localPaintFlags = 0
outlineRect = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
paintingRootForRenderer = 0x0
forceBlackText = false
clipRectToApply = {m_rect = {m_location = {m_x = 169, m_y = 60}, m_size = {m_width = 920, m_height = 617}}, m_hasRadius = true}
selectionOnly = false
paintingOverlayScrollbars = false
#9 0x00007ffff524ab6f in WebCore::RenderLayer::paintList (this=0x7fffe497db18, list=0x7fff93b32948, rootLayer=0x7fffe497d560, p=0x7fffffffc150, paintDirtyRect=..., paintBehavior=0, paintingRoot=0x0, overlapTestRequests=0x7fffffffbf20, paintFlags=0) at ../Source/WebCore/rendering/RenderLayer.cpp:2840
childLayer = <optimized out>
i = <optimized out>
#10 0x00007ffff52498ac in WebCore::RenderLayer::paintLayer (this=0x7fffe497db18, rootLayer=0x7fffe497d560, p=0x7fffffffc150, paintDirtyRect=<optimized out>, paintBehavior=0, paintingRoot=<optimized out>, overlapTestRequests=0x7fffffffbf20, paintFlags=0) at ../Source/WebCore/rendering/RenderLayer.cpp:2802
haveTransparency = false
layerBounds = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 2319}}
damageRect = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
paintOffset = {m_x = 0, m_y = 0}
shouldPaint = <optimized out>
localPaintFlags = 0
outlineRect = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
paintingRootForRenderer = 0x0
forceBlackText = false
clipRectToApply = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
selectionOnly = false
paintingOverlayScrollbars = false
#11 0x00007ffff524ab6f in WebCore::RenderLayer::paintList (this=0x7fffe497d748, list=0x7fff93b32930, rootLayer=0x7fffe497d560, p=0x7fffffffc150, paintDirtyRect=..., paintBehavior=0, paintingRoot=0x0, overlapTestRequests=0x7fffffffbf20, paintFlags=0) at ../Source/WebCore/rendering/RenderLayer.cpp:2840
childLayer = <optimized out>
i = <optimized out>
#12 0x00007ffff52498ac in WebCore::RenderLayer::paintLayer (this=0x7fffe497d748, rootLayer=0x7fffe497d560, p=0x7fffffffc150, paintDirtyRect=<optimized out>, paintBehavior=0, paintingRoot=<optimized out>, overlapTestRequests=0x7fffffffbf20, paintFlags=0) at ../Source/WebCore/rendering/RenderLayer.cpp:2802
haveTransparency = false
layerBounds = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 2319}}
damageRect = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
paintOffset = {m_x = 0, m_y = 0}
shouldPaint = <optimized out>
localPaintFlags = 0
outlineRect = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
paintingRootForRenderer = 0x0
forceBlackText = false
clipRectToApply = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
selectionOnly = false
paintingOverlayScrollbars = false
#13 0x00007ffff524ab6f in WebCore::RenderLayer::paintList (this=0x7fffe497d560, list=0x7fff93b32918, rootLayer=0x7fffe497d560, p=0x7fffffffc150, paintDirtyRect=..., paintBehavior=0, paintingRoot=0x0, overlapTestRequests=0x7fffffffbf20, paintFlags=0) at ../Source/WebCore/rendering/RenderLayer.cpp:2840
childLayer = <optimized out>
i = <optimized out>
#14 0x00007ffff52498ac in WebCore::RenderLayer::paintLayer (this=0x7fffe497d560, rootLayer=0x7fffe497d560, p=0x7fffffffc150, paintDirtyRect=<optimized out>, paintBehavior=0, paintingRoot=<optimized out>, overlapTestRequests=0x7fffffffbf20, paintFlags=0) at ../Source/WebCore/rendering/RenderLayer.cpp:2802
haveTransparency = false
layerBounds = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}
damageRect = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
paintOffset = {m_x = 0, m_y = 0}
shouldPaint = <optimized out>
localPaintFlags = 0
outlineRect = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
paintingRootForRenderer = 0x0
forceBlackText = false
clipRectToApply = {m_rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}, m_hasRadius = false}
selectionOnly = false
paintingOverlayScrollbars = false
#15 0x00007ffff524ac74 in WebCore::RenderLayer::paint (this=<optimized out>, p=<optimized out>, damageRect=<optimized out>, paintBehavior=<optimized out>, paintingRoot=<optimized out>) at ../Source/WebCore/rendering/RenderLayer.cpp:2542
overlapTestRequests = {m_impl = {static m_maxLoad = <optimized out>, static m_minLoad = <optimized out>, m_table = 0x0, m_tableSize = 0, m_tableSizeMask = 0, m_keyCount = 0, m_deletedCount = 0}}
#16 0x00007ffff50c507e in WebCore::FrameView::paintContents (this=0x7fffe496ab80, p=0x7fffffffc150, rect=...) at ../Source/WebCore/page/FrameView.cpp:2702
cookie = {first = 0x0, second = 0}
document = 0x7fffe496d700
rootLayer = 0x7fffe497d420
isTopLevelPainter = true
contentRenderer = 0x7fffe497d420
isRootFrame = true
oldPaintBehavior = 0
flatteningPaint = false
eltRenderer = <optimized out>
#17 0x00007ffff51832b0 in paint (rect=..., context=0x7fffffffc150, this=0x7fffe496ab80) at ../Source/WebCore/platform/ScrollView.cpp:1033
stateSaver = {m_context = <optimized out>, m_saveAndRestore = true}
clipRect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}
documentDirtyRect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}
#18 WebCore::ScrollView::paint (this=0x7fffe496ab80, context=0x7fffffffc150, rect=...) at ../Source/WebCore/platform/ScrollView.cpp:996
No locals.
#19 0x00007ffff4b70b21 in paintWebView (rects=..., clipRect=..., context=..., transparent=0, frame=0x7fffe4929000) at ../Source/WebKit/gtk/webkit/webkitwebview.cpp:653
coalesce = true
#20 webkit_web_view_draw (widget=<optimized out>, cr=<optimized out>) at ../Source/WebKit/gtk/webkit/webkitwebview.cpp:720
gc = {m_data = 0x7fff8af763b8, m_state = {strokeGradient = {m_ptr = 0x0}, strokePattern = {m_ptr = 0x0}, fillGradient = {m_ptr = 0x0}, fillPattern = {m_ptr = 0x0}, shadowOffset = {m_width = 0, m_height = 0}, strokeThickness = 0, shadowBlur = 0, textDrawingMode = 1, strokeColor = {static black = 4278190080, static white = 4294967295, static darkGray = 4286611584, static gray = 4288716960, static lightGray = 4290822336, static transparent = 0, m_color = 4278190080, m_valid = true}, fillColor = {static black = 4278190080, static white = 4294967295, static darkGray = 4286611584, static gray = 4288716960, static lightGray = 4290822336, static transparent = 0, m_color = 4278190080, m_valid = true}, shadowColor = {static black = 4278190080, static white = 4294967295, static darkGray = 4286611584, static gray = 4288716960, static lightGray = 4290822336, static transparent = 0, m_color = 0, m_valid = false}, strokeStyle = WebCore::SolidStroke, fillRule = WebCore::RULE_NONZERO, strokeColorSpace = WebCore::ColorSpaceDeviceRGB, fillColorSpace = WebCore::ColorSpaceDeviceRGB, shadowColorSpace = WebCore::ColorSpaceDeviceRGB, compositeOperator = WebCore::CompositeSourceOver, shouldAntialias = true, shouldSmoothFonts = true, paintingDisabled = false, shadowsIgnoreTransforms = false}, m_stack = {m_size = 2, m_buffer = {<WTF::VectorBufferBase<WebCore::GraphicsContextState>> = {m_buffer = 0x7fff97fd0000, m_capacity = 16}, <No data fields>}}, m_updatingControlTints = false, m_transparencyCount = 0}
rect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}
rectList = 0xab5830
rects = {m_size = 2, m_buffer = {<WTF::VectorBufferBase<WebCore::IntRect>> = {m_buffer = 0x7fff8b877000, m_capacity = 16}, <No data fields>}}
webView = <optimized out>
priv = 0x860380
clipRect = {x = 0, y = 0, width = 1258, height = 677}
frame = 0x7fffe4929000
#21 0x00007ffff3fd5088 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#22 0x00007ffff40ff560 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#23 0x00007ffff2aa3804 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#24 0x00007ffff2ab55bf in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#25 0x00007ffff2abebe3 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#26 0x00007ffff2abefb2 in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#27 0x00007ffff4110cea in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#28 0x00007ffff4110e31 in gtk_widget_send_expose () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#29 0x00007ffff3fd4f29 in gtk_main_do_event () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#30 0x00007ffff39ccd27 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
No symbol table info available.
#31 0x00007ffff39cccc3 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
No symbol table info available.
#32 0x00007ffff39cccc3 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
No symbol table info available.
#33 0x00007ffff39cccc3 in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
No symbol table info available.
#34 0x00007ffff39cc31f in ?? () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
No symbol table info available.
#35 0x00007ffff39cc5bd in gdk_window_process_updates () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
No symbol table info available.
#36 0x00007ffff5183dd9 in WebCore::ScrollView::scrollContents (this=0x7fffe496ab80, scrollDelta=<optimized out>) at ../Source/WebCore/platform/ScrollView.cpp:664
clipRect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}
scrollViewRect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}
horizontalOverhangRect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}
verticalOverhangRect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 0, m_height = 0}}
updateRect = {m_location = {m_x = 0, m_y = 0}, m_size = {m_width = 1258, m_height = 677}}
#37 0x00007ffff5183ea7 in WebCore::ScrollView::scrollTo (this=0x7fffe496ab80, newOffset=<optimized out>) at ../Source/WebCore/platform/ScrollView.cpp:359
scrollDelta = {m_width = 0, m_height = -240}
#38 0x00007ffff50c3200 in WebCore::FrameView::scrollTo (this=<optimized out>, newOffset=...) at ../Source/WebCore/page/FrameView.cpp:2301
No locals.
#39 0x00007ffff51815f5 in WebCore::ScrollView::setScrollOffset (this=0x7fffe496ab80, offset=<optimized out>) at ../Source/WebCore/platform/ScrollView.cpp:345
horizontalOffset = <optimized out>
verticalOffset = <optimized out>
newOffset = {m_width = 0, m_height = 0}
#40 0x00007ffff517e394 in WebCore::ScrollableArea::setScrollOffsetFromAnimation (this=0x7fffe496abb8, offset=<optimized out>) at ../Source/WebCore/platform/ScrollableArea.cpp:147
verticalScrollbar = <optimized out>
#41 0x00007ffff517d909 in WebCore::ScrollAnimator::notifyPositionChanged (this=<optimized out>) at ../Source/WebCore/platform/ScrollAnimator.cpp:129
No locals.
#42 0x00007ffff5184ff6 in WebCore::ScrollView::updateScrollbars (this=0x7fffe496ab80, desiredOffset=...) at ../Source/WebCore/platform/ScrollView.cpp:582
hasHorizontalScrollbar = <optimized out>
hasVerticalScrollbar = <optimized out>
hScroll = <optimized out>
vScroll = <optimized out>
scrollPoint = {m_x = 0, m_y = 0}
newHasHorizontalScrollbar = <optimized out>
newHasVerticalScrollbar = <optimized out>
#43 0x00007ffff51858e1 in WebCore::ScrollView::setScrollPosition (this=0x7fffe496ab80, scrollPoint=<optimized out>) at ../Source/WebCore/platform/ScrollView.cpp:393
No locals.
#44 0x00007ffff50c314b in WebCore::FrameView::setScrollPosition (this=0x7fffe496ab80, scrollPoint=<optimized out>) at ../Source/WebCore/page/FrameView.cpp:1631
wasInProgrammaticScroll = false
#45 0x00007ffff50a3d12 in WebCore::DOMWindow::scrollTo (this=0x7fffe4943b00, x=0, y=0) at ../Source/WebCore/page/DOMWindow.cpp:1389
view = {m_ptr = 0x7fffe496ab80}
#46 0x00007ffff557d778 in WebCore::jsDOMWindowPrototypeFunctionScrollTo (exec=0x7fff98b2ba50) at DerivedSources/WebCore/JSDOMWindow.cpp:10859
castedThis = <optimized out>
imp = 0x7fffe4943b00
x = 0
y = -459811808
#47 0x00007fff9ffff1f8 in ?? ()
No symbol table info available.
#48 0xffff000000000002 in ?? ()
No symbol table info available.
#49 0x00007fffa02d8e27 in ?? ()
No symbol table info available.
#50 0x0000000000000000 in ?? ()
No symbol table info available.
quit
A debugging session is active.
Inferior 1 [process 12114] will be killed.
Quit anyway? (y or n)
More information about the pkg-gnome-maintainers
mailing list