ampache-browser / ampache_browser Goto Github PK
View Code? Open in Web Editor NEWAmpache desktop client library.
Home Page: http://ampache-browser.org
License: GNU General Public License v3.0
Ampache desktop client library.
Home Page: http://ampache-browser.org
License: GNU General Public License v3.0
Valgrind says:
==8834== Invalid read of size 1
==8834== at 0x4C2DBA2: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8834== by 0x5C9E438: length (char_traits.h:267)
==8834== by 0x5C9E438: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (ostream:562)
==8834== by 0x11109CCE: data::Ampache::connectToServer() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x11108B25: data::Ampache::initialize() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x1117540F: application::DataLoader::load() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x1118A585: application::AmpacheBrowserApp::initializeAndLoad() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x11188A36: application::AmpacheBrowserApp::run() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x11197E18: application::Application::run() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x11199D11: ampache_browser::ApplicationQt::run() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0xF8A1E5C: AmpacheBrowserPlugin::get_qt_widget() (ampache_browser_plugin.cc:131)
==8834== by 0x1FDCE91B: MainWindow::add_dock_plugin_cb(PluginHandle*) (main_window.cc:303)
==8834== by 0x1FDCF506: MainWindow::add_dock_plugins() (main_window.cc:334)
==8834== Address 0x2131b158 is 24 bytes inside a block of size 89 free'd
==8834== at 0x4C2BCEA: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8834== by 0x1110E417: QTypedArrayData<char>::deallocate(QArrayData*) (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x1110CE98: QByteArray::~QByteArray() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x11109BEC: data::Ampache::connectToServer() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x11108B25: data::Ampache::initialize() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x1117540F: application::DataLoader::load() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x1118A585: application::AmpacheBrowserApp::initializeAndLoad() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x11188A36: application::AmpacheBrowserApp::run() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x11197E18: application::Application::run() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0x11199D11: ampache_browser::ApplicationQt::run() (in /opt/ampache/lib64/libampache_browser_0.so.0.0.0)
==8834== by 0xF8A1E5C: AmpacheBrowserPlugin::get_qt_widget() (ampache_browser_plugin.cc:131)
==8834== by 0x1FDCE91B: MainWindow::add_dock_plugin_cb(PluginHandle*) (main_window.cc:303)
Please implement an "uninstall" make target that undoes the effect of "make install". Thanks!
When enabling the Ampache plugin, or when starting Audacious with it enabled, an extra top-level window is shown for an instant and then disappears. The cause is probably this line in Ui::Ui():
myMainWindow->show();
Calling show() on a Qt widget before it has a parent, maps it as a top-level window. This show() call should probably just be removed.
In file included from /home/john/Source/ampache_browser/include/internal/data//repositories/artist_repository.h:17:0,
from /home/john/Source/ampache_browser/src/application/models/artist_model.cc:16:
/home/john/Source/ampache_browser/include/internal/data/repositories/repository.h: In instantiation of ‘data::Repository<T, U>::isLoaded(int, int) const::<lambda(const T&)> [with T = data::ArtistData; U = domain::Artist]’:
/home/john/Source/ampache_browser/include/internal/data/repositories/repository.h:430:57: required from ‘struct data::Repository<T, U>::isLoaded(int, int) const [with T = data::ArtistData; U = domain::Artist]::<lambda(const class data::ArtistData&)>’
/home/john/Source/ampache_browser/include/internal/data/repositories/repository.h:429:55: required from ‘bool data::Repository<T, U>::isLoaded(int, int) const [with T = data::ArtistData; U = domain::Artist]’
/home/john/Source/ampache_browser/src/application/models/artist_model.cc:57:42: required from here
/home/john/Source/ampache_browser/include/internal/data/repositories/repository.h:430:84: warning: the compiler can assume that the address of ‘fd’ will never be NULL [-Waddress]
filteredData.begin() + filteredOffset + count, [](const T& fd) {return &fd != nullptr;});
~~~~^~~~~~~~~~
/home/john/Source/ampache_browser/include/internal/data/repositories/repository.h: In lambda function:
/home/john/Source/ampache_browser/include/internal/data/repositories/repository.h:430:95: warning: nonnull argument ‘fd’ compared to NULL [-Wnonnull-compare]
filteredData.begin() + filteredOffset + count, [](const T& fd) {return &fd != nullptr;});
^
On Arch Linux, with cmake -DCMAKE_INSTALL_PREFIX:PATH=<prefix>
, shared libraries are installed to <prefix>/lib64
. Ampache should follow the convention of other libraries, which is to use <prefix>/lib
.
A Fedora user reports a crash as described here:
https://bugzilla.redhat.com/show_bug.cgi?id=1541127
It doesn't look like there is a known way to reproduce the crash as yet, so this is just an FYI.
Cleaned up backtrace:
Core was generated by `audacious -VVQ'.
Program terminated with signal SIGABRT, Aborted.
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
[Current thread is 1 (Thread 0x7fac50d46040 (LWP 20461))]
Thread 1 (Thread 0x7fac50d46040 (LWP 20461)):
#0 0x00007fac4f14d66b in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007fac4f14f381 in __GI_abort () at abort.c:79
#2 0x00007fac4faf7025 in __gnu_cxx::__verbose_terminate_handler() () at ../../../../libstdc++-v3/libsupc++/vterminate.cc:95
#3 0x00007fac4faf4c16 in __cxxabiv1::__terminate (handler=<optimized out>) at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:47
#4 0x00007fac4faf4c61 in std::terminate() () at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:57
#5 0x00007fac4faf4ea4 in __cxxabiv1::__cxa_throw (obj=<optimized out>, tinfo=0x7fac4fddd750 <typeinfo for std::bad_alloc>, dest=0x7fac4faf2f00 <std::bad_alloc::~bad_alloc()>) at ../../../../libstdc++-v3/libsupc++/eh_throw.cc:93
#6 0x00007fac4faf542c in operator new(unsigned long) (sz=94132798226440) at ../../../../libstdc++-v3/libsupc++/new_op.cc:54
#7 0x00007fac1ac4c80d in std::__cxx11::basic_string::_M_construct() (this=this@entry=0x7ffca1173de0, __beg=0x559d138d7340 "", __end=<optimized out>) at /usr/include/c++/7/bits/basic_string.tcc:219
#8 0x00007fac1ac4c953 in std::__cxx11::basic_string::_M_construct_aux() (__end=<optimized out>, __beg=<optimized out>, this=0x7ffca1173de0) at /usr/include/c++/7/bits/basic_string.h:220
#9 0x00007fac1ac4c953 in std::__cxx11::basic_string::_M_construct() (__end=<optimized out>, __beg=<optimized out>, this=0x7ffca1173de0) at /usr/include/c++/7/bits/basic_string.h:239
#10 0x00007fac1ac4c953 in std::__cxx11::basic_string::basic_string() (__str=..., this=0x7ffca1173de0) at /usr/include/c++/7/bits/basic_string.h:424
#11 0x00007fac1ac4c953 in domain::Artist::getId() const (this=<optimized out>) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/domain/artist.cc:28
#12 0x00007fac1ac4c953 in domain::operator==() (lhs=..., rhs=...) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/domain/artist.cc:40
#13 0x00007fac1ac66f72 in std::equal_to::operator()() const (this=0x559d137d7288, __y=..., __x=...) at /usr/include/c++/7/bits/stl_function.h:356
#14 0x00007fac1ac66f72 in std::__detail::_Equal_helper::_S_equals() (__eq=..., __extract=..., __n=0x559d138c9d80, __c=1997581895559225089, __k=...) at /usr/include/c++/7/bits/hashtable_policy.h:1433
#15 0x00007fac1ac66f72 in std::__detail::_Hashtable_base::_M_equals() const (this=0x559d137d7288, __n=0x559d138c9d80, __c=1997581895559225089, __k=...) at /usr/include/c++/7/bits/hashtable_policy.h:1815
#16 0x00007fac1ac66f72 in std::_Hashtable::_M_find_before_node() const (this=this@entry=0x559d137d7288, __n=__n@entry=265, __k=..., __code=__code@entry=1997581895559225089) at /usr/include/c++/7/bits/hashtable.h:1557
#17 0x00007fac1ac65876 in std::_Hashtable::_M_find_node() const (__c=1997581895559225089, __key=..., __bkt=<optimized out>, this=0x559d137d7288) at /usr/include/c++/7/bits/hashtable.h:642
#18 0x00007fac1ac65876 in std::__detail::_Map_base::operator[]() (__k=..., this=0x559d137d7288) at /usr/include/c++/7/bits/hashtable_policy.h:746
#19 0x00007fac1ac65876 in std::unordered_map::operator[]() (__k=..., this=0x559d137d7288) at /usr/include/c++/7/bits/unordered_map.h:968
#20 0x00007fac1ac65876 in data::Indices::addArtists() (this=0x559d137d7240, artists=std::vector of length 239, capacity 256 = {...}) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/data/indices.cc:22
#21 0x00007fac1ac6fd02 in data::ArtistRepository::updateIndices() (this=0x559d138b15a0, data=...) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/data/repositories/artist_repository.cc:81
#22 0x00007fac1ac83fa8 in data::Repository::onDataLoadRequestFinished() (this=0x559d138b15a0, dataAndError=...) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/include/internal/data/repositories/repository.h:577
#23 0x00007fac1ac57c39 in std::function::operator()() const (__args#0=..., this=<optimized out>) at /usr/include/c++/7/bits/std_function.h:706
#24 0x00007fac1ac57c39 in infrastructure::Delegate::operator()() const (arg=..., this=<optimized out>) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/infrastructure/event/delegate.cc:27
#25 0x00007fac1ac57c39 in infrastructure::Event::operator()() (this=this@entry=0x559d136c9e70, arg=...) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/infrastructure/event/event.cc:21
#26 0x00007fac1ac52a91 in data::Ampache::processArtists() (this=0x559d136c9e30, xmlStreamReader=..., error=<optimized out>) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/data/providers/ampache/ampache.cc:443
#27 0x00007fac1ac547d5 in data::Ampache::onNetworkRequestFinished() (this=0x559d136c9e30, url=..., content=<optimized out>, contentSize=40138) at /usr/src/debug/ampache_browser-1.0.0-1.fc27.x86_64/src/data/providers/ampache/ampache.cc:163
#28 0x00007fac1aec1909 in std::function::operator()() const (__args#2=<optimized out>, __args#1=<optimized out>, __args#0="https://<hostname redacted>/index.php/apps/music/ampache/server/xml.server.php?action=artists&auth=something&limit=1&offset=476", this=0x559d136ca058) at /usr/include/c++/7/bits/std_function.h:706
#29 0x00007fac1aec1909 in vfsAsyncCb() (url=0x559d137381c0 "https://<hostname redacted>/index.php/apps/music/ampache/server/xml.server.php?action=artists&auth=something&limit=1&offset=476", data=..., callback=0x559d136ca058) at ampache.cc:56
#30 0x00007fac509408f4 in send_data() () at vfs_async.cc:59
#31 0x00007fac5092826f in QueuedFuncHelper::run() (this=0x7fac380b4860) at mainloop.cc:136
#32 0x00007fac4eae98cb in QObject::event() (this=0x7fac50b5e0e0 <router>, e=<optimized out>) at kernel/qobject.cpp:1268
#33 0x00007fac30e536ac in QApplicationPrivate::notify_helper() (this=this@entry=0x559d13044360, receiver=receiver@entry=0x7fac50b5e0e0 <router>, e=e@entry=0x7fac380b4890) at kernel/qapplication.cpp:3722
#34 0x00007fac30e5aef4 in QApplication::notify() (this=0x559d13094aa0, receiver=0x7fac50b5e0e0 <router>, e=0x7fac380b4890) at kernel/qapplication.cpp:3481
#35 0x00007fac4eac0367 in QCoreApplication::notifyInternal2() (receiver=0x7fac50b5e0e0 <router>, event=event@entry=0x7fac380b4890) at kernel/qcoreapplication.cpp:1018
#36 0x00007fac4eac2aeb in QCoreApplication::sendEvent() (event=0x7fac380b4890, receiver=<optimized out>) at kernel/qcoreapplication.h:233
#37 0x00007fac4eac2aeb in QCoreApplicationPrivate::sendPostedEvents() (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x559d13032410) at kernel/qcoreapplication.cpp:1678
#38 0x00007fac4eac3008 in QCoreApplication::sendPostedEvents() (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1532
#39 0x00007fac4eb11553 in postEventSourceDispatch() (s=0x559d1320a1f0) at kernel/qeventdispatcher_glib.cpp:276
#40 0x00007fac4fe35b77 in g_main_dispatch (context=0x559d13045bd0) at gmain.c:3142
#41 0x00007fac4fe35b77 in g_main_context_dispatch (context=context@entry=0x559d13045bd0) at gmain.c:3795
#42 0x00007fac4fe35f20 in g_main_context_iterate (context=context@entry=0x559d13045bd0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3868
#43 0x00007fac4fe35fac in g_main_context_iteration (context=0x559d13045bd0, may_block=may_block@entry=1) at gmain.c:3929
#44 0x00007fac4eb1133f in QEventDispatcherGlib::processEvents() (this=0x559d1327c740, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#45 0x00007fac4eabf0ea in QEventLoop::exec() (this=this@entry=0x7ffca1174900, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#46 0x00007fac4eac7744 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1291
#47 0x00007fac509279ba in interface_run() () at interface.cc:163
#48 0x00007fac5093b0d2 in aud_run() () at runtime.cc:323
#49 0x0000559d118f9109 in main() (argc=<optimized out>, argv=<optimized out>) at main.cc:395
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.