Public bug reported:

jackd2 (1.9.10+20150825git1ed50c92~dfsg-1ubuntu1) fails to start on the
aarch64 architecture (Xenial) with an alignment error such as..

Unhandled fault: alignment fault (0x92000021) at 0x0000007fa519708e

Using...
lsb_release -rd
Description:    Ubuntu 16.04 LTS
Release:        16.04

An upstream fix is available for aarch64 using the same method as for
arm and powerpc by working around packed structure issues...

https://github.com/jackaudio/jack2/commit/693451c36106542c5c5b5ba46d5d89aec783252e

The issue also impacts the aarch64 libjackd libraries (libjack-
jackd2-0), and any client package compiled against the bugged library
will have a broken shared memory structure for aarch64.  Examples
include qjackctl, ardour, guitarix, etc.

Is it possible to request a new pull from upstream or have the patch
listed above applied to Ubuntu?  Please let me know if this is not the
appropriate place to request this or if more information is needed.

Best Regards,

Brad.

PS. A debug of a crash...

JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
[New Thread 0x7fb1f631e0 (LWP 8369)]

Thread 1 "jackd" received signal SIGBUS, Bus error.
0x0000007fb7f41cc4 in Jack::JackGraphManager::InitRefNum(int) () from 
/usr/lib/aarch64-linux-gnu/libjackserver.so.0
(gdb) bt full
#0  0x0000007fb7f41cc4 in Jack::JackGraphManager::InitRefNum(int) () from 
/usr/lib/aarch64-linux-gnu/libjackserver.so.0
No symbol table info available.
#1  0x0000007fb7f5f5cc in Jack::JackEngine::ClientInternalOpen(char const*, 
int*, Jack::JackEngineControl**, Jack::JackGraphManager**, 
Jack::JackClientInterface*, bool) ()
   from /usr/lib/aarch64-linux-gnu/libjackserver.so.0
No symbol table info available.
#2  0x0000007fb7f5be68 in Jack::JackDriver::Open(unsigned int, unsigned int, 
bool, bool, int, int, bool, char const*, char const*, unsigned int, unsigned 
int) ()
   from /usr/lib/aarch64-linux-gnu/libjackserver.so.0
No symbol table info available.
#3  0x0000007fb7b02608 in driver_initialize () from 
/usr/lib/aarch64-linux-gnu/jack/jack_dummy.so
No symbol table info available.
#4  0x0000007fb7f6853c in JackDriverInfo::Open(jack_driver_desc_t*, 
Jack::JackLockedEngine*, Jack::JackPosixSemaphore*, _JSList const*) () from 
/usr/lib/aarch64-linux-gnu/libjackserver.so.0
No symbol table info available.
#5  0x0000007fb7f64d9c in Jack::JackServer::Open(jack_driver_desc_t*, _JSList*) 
() from /usr/lib/aarch64-linux-gnu/libjackserver.so.0
No symbol table info available.
#6  0x0000007fb7f6be50 in jackctl_server_open () from 
/usr/lib/aarch64-linux-gnu/libjackserver.so.0
No symbol table info available.
#7  0x0000000000402d8c in main (argc=3, argv=0x7fffffef08) at 
../common/Jackdmp.cpp:545
        server_ctl = 0x4298f0
        server_parameters = 0x42a570
        server_name = 0x4041e0 "default"
        master_driver_ctl = 0x435a10
        loopback_driver_ctl = 0x0
        replace_registry = 0
        options = 0x4041e8 "-d:X:I:P:uvshVrRL:STFl:t:mn:p:a:c:"
        long_options = {{name = 0x404210 "clock-source", has_arg = 1, flag = 
0x0, val = 99}, {name = 0x404220 "loopback-driver", has_arg = 1, flag = 0x0, 
val = 76}, {name = 0x404230 "audio-driver",
            has_arg = 1, flag = 0x0, val = 100}, {name = 0x404240 
"midi-driver", has_arg = 1, flag = 0x0, val = 88}, {name = 0x404250 
"internal-client", has_arg = 1, flag = 0x0, val = 73}, {
            name = 0x404260 "verbose", has_arg = 0, flag = 0x0, val = 118}, 
{name = 0x404268 "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x404270 
"port-max", has_arg = 1, flag = 0x0, val = 112}, {
            name = 0x404280 "no-mlock", has_arg = 0, flag = 0x0, val = 109}, 
{name = 0x404290 "name", has_arg = 1, flag = 0x0, val = 110}, {name = 0x404298 
"unlock", has_arg = 0, flag = 0x0, val = 117}, {
            name = 0x4042a0 "realtime", has_arg = 0, flag = 0x0, val = 82}, 
{name = 0x4042b0 "no-realtime", has_arg = 0, flag = 0x0, val = 114}, {name = 
0x4042c0 "replace-registry", has_arg = 0,
            flag = 0x7fffffe968, val = 0}, {name = 0x4042d8 "loopback", has_arg 
= 0, flag = 0x0, val = 76}, {name = 0x4042e8 "realtime-priority", has_arg = 1, 
flag = 0x0, val = 80}, {name = 0x404300 "timeout",
            has_arg = 1, flag = 0x0, val = 116}, {name = 0x404308 "temporary", 
has_arg = 0, flag = 0x0, val = 84}, {name = 0x404318 "version", has_arg = 0, 
flag = 0x0, val = 86}, {name = 0x404320 "silent",
            has_arg = 0, flag = 0x0, val = 115}, {name = 0x404328 "sync", 
has_arg = 0, flag = 0x0, val = 83}, {name = 0x404330 "autoconnect", has_arg = 
1, flag = 0x0, val = 97}, {name = 0x0, has_arg = 0,
            flag = 0x0, val = 0}}
        i = 1
        opt = 100
        option_index = 0
        master_driver_name = 0x7ffffff2ae "dummy"
        master_driver_args = 0x435020
        master_driver_nargs = 1
        loopback = 0
        show_version = false
        sigmask = 0x7fb7fb3020
        param = 0x42b0b0
        value = {ui = 0, i = 0, c = 0 '\000',
          str = 
"\000\000\000\000\000\000\000\000\220\001\000\270\177\000\000\000\300\353\377\377\177\000\000\000h\354\377\377\177\000\000\000\320\353\377\377\177\000\000\000\363\026\346\365\000\000\000\000\n\000\000\000\000\000\000\000\004",
 '\000' <repeats 11 times>, 
"\177\000\000\000\070q\377\267\177\000\000\000\300\353\377\377\177\000\000\000\b\353\377\377\177\000\000\000\004\353\377\377\177\000\000\000`\n@\000\000\000\000\000\320q\377\267\177\000\000\000\020i·\177\000\000",
 b = false}
        internals_list = {<std::__cxx11::_List_base<char*, 
std::allocator<char*> >> = {
            _M_impl = {<std::allocator<std::_List_node<char*> >> = 
{<__gnu_cxx::new_allocator<std::_List_node<char*> >> = {<No data fields>}, <No 
data fields>}, _M_node = {<std::__detail::_List_node_base> = {
                  _M_next = 0x7fffffea28, _M_prev = 0x7fffffea28}, _M_data = 
0}}}, <No data fields>}
        slaves_list = {<std::__cxx11::_List_base<char*, std::allocator<char*> 
>> = {
            _M_impl = {<std::allocator<std::_List_node<char*> >> = 
{<__gnu_cxx::new_allocator<std::_List_node<char*> >> = {<No data fields>}, <No 
data fields>}, _M_node = {<std::__detail::_List_node_base> = {
                  _M_next = 0x7fffffea40, _M_prev = 0x7fffffea40}, _M_data = 
0}}}, <No data fields>}
        it = <error reading variable it (Cannot access memory at address 0x10)>
        return_value = -1
        notify_sent = false

** Affects: jackd2 (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: aarch64 jackd2 libjack-jackd2-0

** Description changed:

  jackd2 (1.9.10+20150825git1ed50c92~dfsg-1ubuntu1) fails to start on the
  aarch64 architecture (Xenial) with an alignment error such as..
  
  Unhandled fault: alignment fault (0x92000021) at 0x0000007fa519708e
  
  Using...
  lsb_release -rd
  Description:  Ubuntu 16.04 LTS
  Release:      16.04
  
  An upstream fix is available for aarch64 using the same method as for
  arm and powerpc by working around packed structure issues...
  
  
https://github.com/jackaudio/jack2/commit/693451c36106542c5c5b5ba46d5d89aec783252e
  
- 
- The issue also impacts the aarch64 libjackd libraries (), and any client 
package compiled against the bugged library will have a broken shared memory 
structure for aarch64.  Examples include qjackctl, ardour, guitarix, etc.
+ The issue also impacts the aarch64 libjackd libraries (libjack-
+ jackd2-0), and any client package compiled against the bugged library
+ will have a broken shared memory structure for aarch64.  Examples
+ include qjackctl, ardour, guitarix, etc.
  
  Is it possible to request a new pull from upstream or have the patch
  listed above applied to Ubuntu?  Please let me know if this is not the
  appropriate place to request this or if more information is needed.
  
  Best Regards,
  
  Brad.
- 
  
  PS. A debug of a crash...
  
  JACK server starting in realtime mode with priority 10
  self-connect-mode is "Don't restrict self connect requests"
  [New Thread 0x7fb1f631e0 (LWP 8369)]
  
  Thread 1 "jackd" received signal SIGBUS, Bus error.
  0x0000007fb7f41cc4 in Jack::JackGraphManager::InitRefNum(int) () from 
/usr/lib/aarch64-linux-gnu/libjackserver.so.0
  (gdb) bt full
  #0  0x0000007fb7f41cc4 in Jack::JackGraphManager::InitRefNum(int) () from 
/usr/lib/aarch64-linux-gnu/libjackserver.so.0
  No symbol table info available.
  #1  0x0000007fb7f5f5cc in Jack::JackEngine::ClientInternalOpen(char const*, 
int*, Jack::JackEngineControl**, Jack::JackGraphManager**, 
Jack::JackClientInterface*, bool) ()
-    from /usr/lib/aarch64-linux-gnu/libjackserver.so.0
+    from /usr/lib/aarch64-linux-gnu/libjackserver.so.0
  No symbol table info available.
  #2  0x0000007fb7f5be68 in Jack::JackDriver::Open(unsigned int, unsigned int, 
bool, bool, int, int, bool, char const*, char const*, unsigned int, unsigned 
int) ()
-    from /usr/lib/aarch64-linux-gnu/libjackserver.so.0
+    from /usr/lib/aarch64-linux-gnu/libjackserver.so.0
  No symbol table info available.
  #3  0x0000007fb7b02608 in driver_initialize () from 
/usr/lib/aarch64-linux-gnu/jack/jack_dummy.so
  No symbol table info available.
  #4  0x0000007fb7f6853c in JackDriverInfo::Open(jack_driver_desc_t*, 
Jack::JackLockedEngine*, Jack::JackPosixSemaphore*, _JSList const*) () from 
/usr/lib/aarch64-linux-gnu/libjackserver.so.0
  No symbol table info available.
  #5  0x0000007fb7f64d9c in Jack::JackServer::Open(jack_driver_desc_t*, 
_JSList*) () from /usr/lib/aarch64-linux-gnu/libjackserver.so.0
  No symbol table info available.
  #6  0x0000007fb7f6be50 in jackctl_server_open () from 
/usr/lib/aarch64-linux-gnu/libjackserver.so.0
  No symbol table info available.
  #7  0x0000000000402d8c in main (argc=3, argv=0x7fffffef08) at 
../common/Jackdmp.cpp:545
-         server_ctl = 0x4298f0
-         server_parameters = 0x42a570
-         server_name = 0x4041e0 "default"
-         master_driver_ctl = 0x435a10
-         loopback_driver_ctl = 0x0
-         replace_registry = 0
-         options = 0x4041e8 "-d:X:I:P:uvshVrRL:STFl:t:mn:p:a:c:"
-         long_options = {{name = 0x404210 "clock-source", has_arg = 1, flag = 
0x0, val = 99}, {name = 0x404220 "loopback-driver", has_arg = 1, flag = 0x0, 
val = 76}, {name = 0x404230 "audio-driver", 
-             has_arg = 1, flag = 0x0, val = 100}, {name = 0x404240 
"midi-driver", has_arg = 1, flag = 0x0, val = 88}, {name = 0x404250 
"internal-client", has_arg = 1, flag = 0x0, val = 73}, {
-             name = 0x404260 "verbose", has_arg = 0, flag = 0x0, val = 118}, 
{name = 0x404268 "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x404270 
"port-max", has_arg = 1, flag = 0x0, val = 112}, {
-             name = 0x404280 "no-mlock", has_arg = 0, flag = 0x0, val = 109}, 
{name = 0x404290 "name", has_arg = 1, flag = 0x0, val = 110}, {name = 0x404298 
"unlock", has_arg = 0, flag = 0x0, val = 117}, {
-             name = 0x4042a0 "realtime", has_arg = 0, flag = 0x0, val = 82}, 
{name = 0x4042b0 "no-realtime", has_arg = 0, flag = 0x0, val = 114}, {name = 
0x4042c0 "replace-registry", has_arg = 0, 
-             flag = 0x7fffffe968, val = 0}, {name = 0x4042d8 "loopback", 
has_arg = 0, flag = 0x0, val = 76}, {name = 0x4042e8 "realtime-priority", 
has_arg = 1, flag = 0x0, val = 80}, {name = 0x404300 "timeout", 
-             has_arg = 1, flag = 0x0, val = 116}, {name = 0x404308 
"temporary", has_arg = 0, flag = 0x0, val = 84}, {name = 0x404318 "version", 
has_arg = 0, flag = 0x0, val = 86}, {name = 0x404320 "silent", 
-             has_arg = 0, flag = 0x0, val = 115}, {name = 0x404328 "sync", 
has_arg = 0, flag = 0x0, val = 83}, {name = 0x404330 "autoconnect", has_arg = 
1, flag = 0x0, val = 97}, {name = 0x0, has_arg = 0, 
-             flag = 0x0, val = 0}}
-         i = 1
-         opt = 100
-         option_index = 0
-         master_driver_name = 0x7ffffff2ae "dummy"
-         master_driver_args = 0x435020
-         master_driver_nargs = 1
-         loopback = 0
-         show_version = false
-         sigmask = 0x7fb7fb3020
-         param = 0x42b0b0
-         value = {ui = 0, i = 0, c = 0 '\000', 
-           str = 
"\000\000\000\000\000\000\000\000\220\001\000\270\177\000\000\000\300\353\377\377\177\000\000\000h\354\377\377\177\000\000\000\320\353\377\377\177\000\000\000\363\026\346\365\000\000\000\000\n\000\000\000\000\000\000\000\004",
 '\000' <repeats 11 times>, 
"\177\000\000\000\070q\377\267\177\000\000\000\300\353\377\377\177\000\000\000\b\353\377\377\177\000\000\000\004\353\377\377\177\000\000\000`\n@\000\000\000\000\000\320q\377\267\177\000\000\000\020i·\177\000\000",
 b = false}
-         internals_list = {<std::__cxx11::_List_base<char*, 
std::allocator<char*> >> = {
-             _M_impl = {<std::allocator<std::_List_node<char*> >> = 
{<__gnu_cxx::new_allocator<std::_List_node<char*> >> = {<No data fields>}, <No 
data fields>}, _M_node = {<std::__detail::_List_node_base> = {
-                   _M_next = 0x7fffffea28, _M_prev = 0x7fffffea28}, _M_data = 
0}}}, <No data fields>}
-         slaves_list = {<std::__cxx11::_List_base<char*, std::allocator<char*> 
>> = {
-             _M_impl = {<std::allocator<std::_List_node<char*> >> = 
{<__gnu_cxx::new_allocator<std::_List_node<char*> >> = {<No data fields>}, <No 
data fields>}, _M_node = {<std::__detail::_List_node_base> = {
-                   _M_next = 0x7fffffea40, _M_prev = 0x7fffffea40}, _M_data = 
0}}}, <No data fields>}
-         it = <error reading variable it (Cannot access memory at address 
0x10)>
-         return_value = -1
-         notify_sent = false
+         server_ctl = 0x4298f0
+         server_parameters = 0x42a570
+         server_name = 0x4041e0 "default"
+         master_driver_ctl = 0x435a10
+         loopback_driver_ctl = 0x0
+         replace_registry = 0
+         options = 0x4041e8 "-d:X:I:P:uvshVrRL:STFl:t:mn:p:a:c:"
+         long_options = {{name = 0x404210 "clock-source", has_arg = 1, flag = 
0x0, val = 99}, {name = 0x404220 "loopback-driver", has_arg = 1, flag = 0x0, 
val = 76}, {name = 0x404230 "audio-driver",
+             has_arg = 1, flag = 0x0, val = 100}, {name = 0x404240 
"midi-driver", has_arg = 1, flag = 0x0, val = 88}, {name = 0x404250 
"internal-client", has_arg = 1, flag = 0x0, val = 73}, {
+             name = 0x404260 "verbose", has_arg = 0, flag = 0x0, val = 118}, 
{name = 0x404268 "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x404270 
"port-max", has_arg = 1, flag = 0x0, val = 112}, {
+             name = 0x404280 "no-mlock", has_arg = 0, flag = 0x0, val = 109}, 
{name = 0x404290 "name", has_arg = 1, flag = 0x0, val = 110}, {name = 0x404298 
"unlock", has_arg = 0, flag = 0x0, val = 117}, {
+             name = 0x4042a0 "realtime", has_arg = 0, flag = 0x0, val = 82}, 
{name = 0x4042b0 "no-realtime", has_arg = 0, flag = 0x0, val = 114}, {name = 
0x4042c0 "replace-registry", has_arg = 0,
+             flag = 0x7fffffe968, val = 0}, {name = 0x4042d8 "loopback", 
has_arg = 0, flag = 0x0, val = 76}, {name = 0x4042e8 "realtime-priority", 
has_arg = 1, flag = 0x0, val = 80}, {name = 0x404300 "timeout",
+             has_arg = 1, flag = 0x0, val = 116}, {name = 0x404308 
"temporary", has_arg = 0, flag = 0x0, val = 84}, {name = 0x404318 "version", 
has_arg = 0, flag = 0x0, val = 86}, {name = 0x404320 "silent",
+             has_arg = 0, flag = 0x0, val = 115}, {name = 0x404328 "sync", 
has_arg = 0, flag = 0x0, val = 83}, {name = 0x404330 "autoconnect", has_arg = 
1, flag = 0x0, val = 97}, {name = 0x0, has_arg = 0,
+             flag = 0x0, val = 0}}
+         i = 1
+         opt = 100
+         option_index = 0
+         master_driver_name = 0x7ffffff2ae "dummy"
+         master_driver_args = 0x435020
+         master_driver_nargs = 1
+         loopback = 0
+         show_version = false
+         sigmask = 0x7fb7fb3020
+         param = 0x42b0b0
+         value = {ui = 0, i = 0, c = 0 '\000',
+           str = 
"\000\000\000\000\000\000\000\000\220\001\000\270\177\000\000\000\300\353\377\377\177\000\000\000h\354\377\377\177\000\000\000\320\353\377\377\177\000\000\000\363\026\346\365\000\000\000\000\n\000\000\000\000\000\000\000\004",
 '\000' <repeats 11 times>, 
"\177\000\000\000\070q\377\267\177\000\000\000\300\353\377\377\177\000\000\000\b\353\377\377\177\000\000\000\004\353\377\377\177\000\000\000`\n@\000\000\000\000\000\320q\377\267\177\000\000\000\020i·\177\000\000",
 b = false}
+         internals_list = {<std::__cxx11::_List_base<char*, 
std::allocator<char*> >> = {
+             _M_impl = {<std::allocator<std::_List_node<char*> >> = 
{<__gnu_cxx::new_allocator<std::_List_node<char*> >> = {<No data fields>}, <No 
data fields>}, _M_node = {<std::__detail::_List_node_base> = {
+                   _M_next = 0x7fffffea28, _M_prev = 0x7fffffea28}, _M_data = 
0}}}, <No data fields>}
+         slaves_list = {<std::__cxx11::_List_base<char*, std::allocator<char*> 
>> = {
+             _M_impl = {<std::allocator<std::_List_node<char*> >> = 
{<__gnu_cxx::new_allocator<std::_List_node<char*> >> = {<No data fields>}, <No 
data fields>}, _M_node = {<std::__detail::_List_node_base> = {
+                   _M_next = 0x7fffffea40, _M_prev = 0x7fffffea40}, _M_data = 
0}}}, <No data fields>}
+         it = <error reading variable it (Cannot access memory at address 
0x10)>
+         return_value = -1
+         notify_sent = false

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1586200

Title:
  aarch64 jackd2 fails on startup with Unhandled fault: alignment fault
  (0x92000021)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/jackd2/+bug/1586200/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to