From nobody Mon Sep 27 14:34:02 2021 X-Original-To: gecko@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id F319117EC037 for ; Mon, 27 Sep 2021 14:34:02 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4HJ4rp68D9z3MwK for ; Mon, 27 Sep 2021 14:34:02 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2610:1c1:1:606c::50:1d]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B386112B5E for ; Mon, 27 Sep 2021 14:34:02 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org ([127.0.1.5]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id 18REY2nF004879 for ; Mon, 27 Sep 2021 14:34:02 GMT (envelope-from bugzilla-noreply@freebsd.org) Received: (from www@localhost) by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id 18REY2P9004878 for gecko@FreeBSD.org; Mon, 27 Sep 2021 14:34:02 GMT (envelope-from bugzilla-noreply@freebsd.org) X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" From: bugzilla-noreply@freebsd.org To: gecko@FreeBSD.org Subject: maintainer-feedback requested: [Bug 258747] www/firefox and derivates SIGSEGV Date: Mon, 27 Sep 2021 14:34:02 +0000 X-Bugzilla-Type: request X-Bugzilla-Product: Ports & Packages X-Bugzilla-Component: Individual Port(s) X-Bugzilla-Version: Latest X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: gecko@FreeBSD.org X-Bugzilla-Flags: maintainer-feedback? Message-ID: In-Reply-To: References: X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated List-Id: Gecko Rendering Engine issues List-Archive: https://lists.freebsd.org/archives/freebsd-gecko List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-gecko@freebsd.org MIME-Version: 1.0 X-ThisMailContainsUnwantedMimeParts: N Bugzilla Automation has asked freebsd-gecko (Nobody) for maintainer-feedback: Bug 258747: www/firefox and derivates SIGSEGV https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D258747 --- Description --- Any version of firefox, whether compiled on poudriere, from pkg, thunderbir= d or firefox-esr result in a segmentation fault when trying to execute. My system is FreeBSD 13.0 STABLE, custom kernel (with freebsd11 compat enab= led as per other similar bugzillas), running under Wayland and root-on-zfs. If I try to insist on opening firefox many many times it actually gets to o= pen, though absolutely no webpage loads, and I cannot get to about:config. Usually the ouput is like this: Segmentation fault (core dumped) When I actually get it to run I get this error printed many times in the console: JavaScript error: , line 0: InternalError: too much recursion=20 As commented, this error happens on any version of firefox, with/without db= us (and with dbus running), and tried disabling and enabling a bunch of flags = to no avail. If it is of use, these are my current flags, compiled from Synth: ALSA : off CANBERRA : off DBUS : on DEBUG : off FFMPEG : on JACK : off LIBPROXY : off LTO : off OPTIMIZED_CFLAGS: on PROFILE : off PULSEAUDIO : off SNDIO : on TEST : off This is the limited information I can get by running lldb: (lldb) target create "/usr/local/bin/firefox" --core "firefox.core" Core file '/home/rier/firefox.core' (x86_64) was loaded. (lldb) bt all This version of LLDB has no plugin for the mipsassem language. Inspection of frame variables will be limited. This version of LLDB has no plugin for the mipsassem language. Inspection of frame variables will be limited. * thread #1, name =3D 'MainThread', stop reason =3D signal SIGSEGV * frame #0: 0x00000cec616b407a libc.so.7`__sys_thr_kill at thr_kill.S:4 frame #1: 0x00000cec6162bb84 libc.so.7`__raise(s=3D11) at raise.c:52:10 frame #2: 0x00000cec952406b4 libxul.so`nsProfileLock::FatalSignalHandler(int, __siginfo*, void*) + 260 frame #3: 0x00000cec95bcb80c libxul.so`WasmTrapHandler(int, __siginfo*, void*) + 332 frame #4: 0x00000cec62842bae libthr.so.3`handle_signal(actp=3D0x00007fffffb9f4c0, sig=3D11, info=3D0x00007fffffb9f8b0, ucp=3D0x00007fffffb9f540) at thr_sig.c:301:3 frame #5: 0x00000cec628421fc libthr.so.3`thr_sighandler(sig=3D11, info=3D0x00007fffffb9f8b0, _ucp=3D0x00007fffffb9f540) at thr_sig.c:246:2 frame #6: 0x00007fffffffe003 frame #7: 0x00000cec955409f3 libxul.so`JSLinearString* js::NewStringCopyUTF8N<(js::AllowGC)1>(JSContext*, JS::UTF8Chars, js::gc::InitialHeap) + 179 frame #8: 0x00000cec9537f05d libxul.so`js::ErrorToException(JSContext*, JSErrorReport*, JSErrorFormatString const* (*)(void*, unsigned int), void*)= + 157 frame #9: 0x00000cec95402702 libxul.so`js::ReportErrorNumberVA(JSContex= t*, js::IsWarning, JSErrorFormatString const* (*)(void*, unsigned int), void*, unsigned int, js::ErrorArgumentsType, __va_list_tag*) + 210 frame #10: 0x00000cec95371f37 libxul.so`JS_ReportErrorNumberASCII(JSContext*, JSErrorFormatString const* (*)(void*, unsigned int), void*, unsigned int, ...) + 151 frame #11: 0x00000cec95491e16 libxul.so`js::ReportOverRecursed(JSContex= t*, unsigned int) + 70 frame #12: 0x00000cec956a9d25 libxul.so`js::frontend::GeneralParser::statementList(js::frontend::YieldHandling) + 1445 frame #13: 0x00000cec957098a6 libxul.so`js::frontend::Parser::globalBody(js::frontend::GlobalSharedContext*) + 262 frame #14: 0x00000cec9572bcd1 libxul.so`bool CompileGlobalScriptToStencilAndMaybeInstantiate(JSContex= t*, js::frontend::CompilationInput&, JS::SourceText&, js::ScopeKind, mozilla::Variant >, mozilla::UniquePtr >, js::frontend::CompilationGCOutput*>&) + 577 frame #15: 0x00000cec95710e54 libxul.so`js::frontend::CompileGlobalScriptToStencil(JSContext*, js::frontend::CompilationInput&, JS::SourceText&, js::ScopeKind) + 68 frame #16: 0x00000cec9551860c libxul.so`JSRuntime::initSelfHosting(JSContext*, mozilla::Span, bool (*)(JSContext*, mozilla::Span)) + 1484 frame #17: 0x00000cec9546838c libxul.so`JS::InitSelfHostedCode(JSContex= t*, mozilla::Span, bool (*)(JSContext*, mozilla::Span)= ) + 108 frame #18: 0x00000cec92481555 libxul.so`XPCJSContext::NewXPCJSContext()= + 2133 frame #19: 0x00000cec924ad259 libxul.so`xpc::InitializeJSContext() + 9 frame #20: 0x00000cec95252927 libxul.so`XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) + 12647 frame #21: 0x00000cec952536ac libxul.so`XRE_main(int, char**, mozilla::BootstrapConfig const&) + 172 frame #22: 0x00000ce45eaf7149 firefox`main + 1801 frame #23: 0x00000ce45eaf67c2 firefox`_start(ap=3D, cleanup=3D) at crt1_c.c:75:7 thread #2, name =3D 'pool-spawner', stop reason =3D signal SIGSEGV frame #0: 0x00000cec62836a7c libthr.so.3`_umtx_op_err at _umtx_op_err.S= :40 frame #1: 0x00000cec62846270 libthr.so.3`_thr_umtx_timedwait_uint(mtx=3D, id=3D0, clockid=3D, abstime=3D, shared=3D) at thr_umtx.c:236:10 frame #2: 0x00000cec6283cf99 libthr.so.3`_thr_sleep(curthread=3D, clockid=3D, abstime=3D) at thr_kern.c:199:9 [artificial] frame #3: 0x00000cec628385ff libthr.so.3`cond_wait_common [inlined] cond_wait_user(cvp=3D0x00000cec647b6540, mp=3D0x00000cec6544d588, abstime=3D0x0000000000000000, cancel=3D1) at thr_cond.c:320:11 frame #4: 0x00000cec6283854a libthr.so.3`cond_wait_common(cond=3D, mutex=3D, abstime=3D0x0000000000000000, cancel=3D1) at thr_cond.c:380 frame #5: 0x00000cec7b63f345 libglib-2.0.so.0`g_cond_wait + 37 frame #6: 0x00000cec7b5b5055 libglib-2.0.so.0`___lldb_unnamed_symbol17$$libglib-2.0.so.0 + 133 frame #7: 0x00000cec7b615018 libglib-2.0.so.0`___lldb_unnamed_symbol236$$libglib-2.0.so.0 + 72 frame #8: 0x00000cec7b614a12 libglib-2.0.so.0`___lldb_unnamed_symbol231$$libglib-2.0.so.0 + 66 frame #9: 0x00000cec62839778 libthr.so.3`thread_start(curthread=3D0x00000cec6474d700) at thr_create.c:29= 2:16 thread #3, name =3D 'gmain', stop reason =3D signal SIGSEGV frame #0: 0x00000cec616b533a libc.so.7`__sys_poll at _poll.S:4 frame #1: 0x00000cec62844b56 libthr.so.3`__thr_poll(fds=3D, nfds=3D, timeout=3D) at thr_syscalls.c:338:8 frame #2: 0x00000cec7b5e9b31 libglib-2.0.so.0`___lldb_unnamed_symbol122$$libglib-2.0.so.0 + 449 frame #3: 0x00000cec7b5e9c56 libglib-2.0.so.0`g_main_context_iteration + 102 frame #4: 0x00000cec7b5ebc91 libglib-2.0.so.0`___lldb_unnamed_symbol127$$libglib-2.0.so.0 + 33 frame #5: 0x00000cec7b614a12 libglib-2.0.so.0`___lldb_unnamed_symbol231$$libglib-2.0.so.0 + 66 frame #6: 0x00000cec62839778 libthr.so.3`thread_start(curthread=3D0x00000cec6474de00) at thr_create.c:29= 2:16 thread #4, name =3D 'pool-firefox', stop reason =3D signal SIGSEGV frame #0: 0x00000cec62836a7c libthr.so.3`_umtx_op_err at _umtx_op_err.S= :40 frame #1: 0x00000cec62846270 libthr.so.3`_thr_umtx_timedwait_uint(mtx=3D, id=3D0, clockid=3D, abstime=3D, shared=3D) at thr_umtx.c:236:10 frame #2: 0x00000cec6283cf99 libthr.so.3`_thr_sleep(curthread=3D, clockid=3D, abstime=3D) at thr_kern.c:199:9 [artificial] frame #3: 0x00000cec628385ff libthr.so.3`cond_wait_common [inlined] cond_wait_user(cvp=3D0x00000cec647b64e0, mp=3D0x00000cec6544d408, abstime=3D0x0000000000604ee8, cancel=3D1) at thr_cond.c:320:11 frame #4: 0x00000cec6283854a libthr.so.3`cond_wait_common(cond=3D, mutex=3D, abstime=3D0x0000000000604ee8, cancel=3D1) at thr_cond.c:380 frame #5: 0x00000cec7b63f4f7 libglib-2.0.so.0`g_cond_wait_until + 119 frame #6: 0x00000cec7b5b5076 libglib-2.0.so.0`___lldb_unnamed_symbol17$$libglib-2.0.so.0 + 166 frame #7: 0x00000cec7b615c3a libglib-2.0.so.0`___lldb_unnamed_symbol239$$libglib-2.0.so.0 + 106 frame #8: 0x00000cec7b614a12 libglib-2.0.so.0`___lldb_unnamed_symbol231$$libglib-2.0.so.0 + 66 frame #9: 0x00000cec62839778 libthr.so.3`thread_start(curthread=3D0x00000ceca4d3a000) at thr_create.c:29= 2:16 thread #5, name =3D 'gdbus', stop reason =3D signal SIGSEGV frame #0: 0x00000cec616b533a libc.so.7`__sys_poll at _poll.S:4 frame #1: 0x00000cec62844b56 libthr.so.3`__thr_poll(fds=3D, nfds=3D, timeout=3D) at thr_syscalls.c:338:8 frame #2: 0x00000cec7b5e9b31 libglib-2.0.so.0`___lldb_unnamed_symbol122$$libglib-2.0.so.0 + 449 frame #3: 0x00000cec7b5e9eda libglib-2.0.so.0`g_main_loop_run + 234 frame #4: 0x00000cec78aa3e0b libgio-2.0.so.0`___lldb_unnamed_symbol2764$$libgio-2.0.so.0 + 27 frame #5: 0x00000cec7b614a12 libglib-2.0.so.0`___lldb_unnamed_symbol231$$libglib-2.0.so.0 + 66 frame #6: 0x00000cec62839778 libthr.so.3`thread_start(curthread=3D0x00000ceca92c9000) at thr_create.c:29= 2:16 thread #6, name =3D 'dconf worker', stop reason =3D signal SIGSEGV frame #0: 0x00000cec616b533a libc.so.7`__sys_poll at _poll.S:4 frame #1: 0x00000cec62844b56 libthr.so.3`__thr_poll(fds=3D, nfds=3D, timeout=3D) at thr_syscalls.c:338:8 frame #2: 0x00000cec7b5e9b31 libglib-2.0.so.0`___lldb_unnamed_symbol122$$libglib-2.0.so.0 + 449 frame #3: 0x00000cec7b5e9c56 libglib-2.0.so.0`g_main_context_iteration + 102 frame #4: 0x00000cecaa03e2bd libdconfsettings.so`___lldb_unnamed_symbol78$$libdconfsettings.so + 29 frame #5: 0x00000cec7b614a12 libglib-2.0.so.0`___lldb_unnamed_symbol231$$libglib-2.0.so.0 + 66 frame #6: 0x00000cec62839778 libthr.so.3`thread_start(curthread=3D0x00000cec6474e500) at thr_create.c:29= 2:16 thread #7, name =3D 'IPC I/O Parent', stop reason =3D signal SIGSEGV frame #0: 0x00000cec616b529a libc.so.7`__sys_kevent at _kevent.S:4 frame #1: 0x00000cec628450f3 libthr.so.3`__thr_kevent(kq=3D15, changelist=3D0x00000cecb07db000, nchanges=3D1, eventlist=3D0x00000cecb07dc0= 00, nevents=3D64, timeout=3D) at thr_syscalls.c:400:8 frame #2: 0x00000cec9ffb9d5f libevent-2.1.so.7`___lldb_unnamed_symbol98$$libevent-2.1.so.7 + 847 frame #3: 0x00000cec9ffadf93 libevent-2.1.so.7`event_base_loop + 963 frame #4: 0x00000cec920d9840 libxul.so`base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) + 368 frame #5: 0x00000cec920d7de8 libxul.so`MessageLoop::Run() + 88 frame #6: 0x00000cec920e147a libxul.so`base::Thread::ThreadMain() + 522 frame #7: 0x00000cec920de6aa libxul.so`ThreadFunc(void*) + 10 frame #8: 0x00000cec62839778 libthr.so.3`thread_start(curthread=3D0x00000cec6474f300) at thr_create.c:29= 2:16 thread #8, name =3D 'Timer', stop reason =3D signal SIGSEGV frame #0: 0x00000cec62836a7c libthr.so.3`_umtx_op_err at _umtx_op_err.S= :40 frame #1: 0x00000cec62846270 libthr.so.3`_thr_umtx_timedwait_uint(mtx=3D, id=3D0, clockid=3D, abstime=3D, shared=3D) at thr_umtx.c:236:10 frame #2: 0x00000cec6283cf99 libthr.so.3`_thr_sleep(curthread=3D, clockid=3D, abstime=3D) at thr_kern.c:199:9 [artificial] frame #3: 0x00000cec628385ff libthr.so.3`cond_wait_common [inlined] cond_wait_user(cvp=3D0x00000cec6489f880, mp=3D0x00000cec6545de88, abstime=3D0x0000000000a88b60, cancel=3D1) at thr_cond.c:320:11 frame #4: 0x00000cec6283854a libthr.so.3`cond_wait_common(cond=3D, mutex=3D, abstime=3D0x0000000000a88b60, cancel=3D1) at thr_cond.c:380 frame #5: 0x00000ce45eb27774 firefox`mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::M= utex Impl&, mozilla::BaseTimeDuration const&) + 3= 56 frame #6: 0x00000cec91cc260c libxul.so`TimerThread::Run() + 316 frame #7: 0x00000cec91cc7df7 libxul.so`nsThread::ProcessNextEvent(bool, bool*) + 2199 frame #8: 0x00000cec91ccc5eb libxul.so`NS_ProcessNextEvent(nsIThread*, bool) + 75 frame #9: 0x00000cec921210d8 libxul.so`mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump= ::De legate*) + 136 frame #10: 0x00000cec920d7de8 libxul.so`MessageLoop::Run() + 88 frame #11: 0x00000cec91cc5a19 libxul.so`nsThread::ThreadFunc(void*) + 2= 97 frame #12: 0x00000cec9b28719d libnspr4.so`___lldb_unnamed_symbol183$$libnspr4.so + 221 frame #13: 0x00000cec62839778 libthr.so.3`thread_start(curthread=3D0x00000cec64750100) at thr_create.c:29= 2:16 thread #9, name =3D 'Socket Thread', stop reason =3D signal SIGSEGV frame #0: 0x00000cec616b533a libc.so.7`__sys_poll at _poll.S:4 frame #1: 0x00000cec62844b56 libthr.so.3`__thr_poll(fds=3D, nfds=3D, timeout=3D) at thr_syscalls.c:338:8 frame #2: 0x00000cec9b281c82 libnspr4.so`PR_Poll + 1202 frame #3: 0x00000cec91deaacb libxul.so`mozilla::net::nsSocketTransportService::Run() + 6011 frame #4: 0x00000cec91deb47d libxul.so`non-virtual thunk to mozilla::net::nsSocketTransportService::Run() + 13 frame #5: 0x00000cec91cc7df7 libxul.so`nsThread::ProcessNextEvent(bool, bool*) + 2199 frame #6: 0x00000cec91ccc5eb libxul.so`NS_ProcessNextEvent(nsIThread*, bool) + 75 frame #7: 0x00000cec921210d8 libxul.so`mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump= ::De legate*) + 136 frame #8: 0x00000cec920d7de8 libxul.so`MessageLoop::Run() + 88 frame #9: 0x00000cec91cc5a19 libxul.so`nsThread::ThreadFunc(void*) + 297 frame #10: 0x00000cec9b28719d libnspr4.so`___lldb_unnamed_symbol183$$libnspr4.so + 221 frame #11: 0x00000cec62839778 libthr.so.3`thread_start(curthread=3D0x00000cec64750800) at thr_create.c:29= 2:16 thread #10, name =3D 'Permission', stop reason =3D signal SIGSEGV frame #0: 0x00000cec62836a7c libthr.so.3`_umtx_op_err at _umtx_op_err.S= :40 frame #1: 0x00000cec62846270 libthr.so.3`_thr_umtx_timedwait_uint(mtx=3D, id=3D0, clockid=3D, abstime=3D, shared=3D) at thr_umtx.c:236:10 frame #2: 0x00000cec6283cf99 libthr.so.3`_thr_sleep(curthread=3D, clockid=3D, abstime=3D) at thr_kern.c:199:9 [artificial] frame #3: 0x00000cec628385ff libthr.so.3`cond_wait_common [inlined] cond_wait_user(cvp=3D0x00000cecaf17e760, mp=3D0x00000cec65461c88, abstime=3D0x0000000000000000, cancel=3D1) at thr_cond.c:320:11 frame #4: 0x00000cec6283854a libthr.so.3`cond_wait_common(cond=3D, mutex=3D, abstime=3D0x0000000000000000, cancel=3D1) at thr_cond.c:380 frame #5: 0x00000ce45eb275e9 firefox`mozilla::detail::ConditionVariableImpl::wait(mozilla::detail::Mutex= Impl &) + 9 frame #6: 0x00000cec91cc0009 libxul.so`mozilla::ThreadEventQueue::GetEvent(bool, mozilla::BaseTimeDuration*) + 281 frame #7: 0x00000cec91cc7996 libxul.so`nsThread::ProcessNextEvent(bool, bool*) + 1078 frame #8: 0x00000cec91ccc5eb libxul.so`NS_ProcessNextEvent(nsIThread*, bool) + 75 frame #9: 0x00000cec9212114c libxul.so`mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump= ::De legate*) + 252 frame #10: 0x00000cec920d7de8 libxul.so`MessageLoop::Run() + 88 frame #11: 0x00000cec91cc5a19 libxul.so`nsThread::ThreadFunc(void*) + 2= 97 frame #12: 0x00000cec9b28719d libnspr4.so`___lldb_unnamed_symbol183$$libnspr4.so + 221 frame #13: 0x00000cec62839778 libthr.so.3`thread_start(curthread=3D0x00000cec64751600) at thr_create.c:29= 2:16 thread #11, name =3D 'JS Watchdog', stop reason =3D signal SIGSEGV frame #0: 0x00000cec62836a7c libthr.so.3`_umtx_op_err at _umtx_op_err.S= :40 frame #1: 0x00000cec62846270 libthr.so.3`_thr_umtx_timedwait_uint(mtx=3D, id=3D0, clockid=3D, abstime=3D, shared=3D) at thr_umtx.c:236:10 frame #2: 0x00000cec6283cf99 libthr.so.3`_thr_sleep(curthread=3D, clockid=3D, abstime=3D) at thr_kern.c:199:9 [artificial] frame #3: 0x00000cec628385ff libthr.so.3`cond_wait_common [inlined] cond_wait_user(cvp=3D0x00000cec64891e20, mp=3D0x00000cec65468e88, abstime=3D0x0000000000b13ed0, cancel=3D1) at thr_cond.c:320:11 frame #4: 0x00000cec6283854a libthr.so.3`cond_wait_common(cond=3D, mutex=3D, abstime=3D0x0000000000b13ed0, cancel=3D1) at thr_cond.c:380 frame #5: 0x00000cec9b27f90a libnspr4.so`PR_WaitCondVar + 234 frame #6: 0x00000cec92491dba libxul.so`WatchdogMain(void*) + 250 frame #7: 0x00000cec9b28719d libnspr4.so`___lldb_unnamed_symbol183$$libnspr4.so + 221 frame #8: 0x00000cec62839778 libthr.so.3`thread_start(curthread=3D0x00000cec64752400) at thr_create.c:29= 2:16