vitalif / grive2

Google Drive client with support for new Drive REST API and partial sync
http://yourcmc.ru/wiki/Grive2
GNU General Public License v2.0
1.52k stars 140 forks source link

2nd JSON parser exception after refreshing token #293

Open caputchinefrobles opened 4 years ago

caputchinefrobles commented 4 years ago

I know #13 was fixed long ago, but its showing again in a different way I think (it crashes sync):

request failed due to auth token expired: 401 (body: ). refreshing token HTTP POST "https://accounts.google.com/o/oauth2/token" HTTP response 200 HTTP POST "https://www.googleapis.com/drive/v2/files" exception: /opt/src/grive2/libgrive/src/json/JsonParser.cc(165): Throw in function void gr::JsonParser::Parse(const char, std::size_t) Dynamic exception type: boost::exception_detail::clone_impl [gr::expt::BacktraceTag] = #0 0x555f4add17a8 grive gr::Exception::Exception() 1 0x555f4adb324f grive gr::JsonParser::Error::Error() 2 0x555f4adb2eb7 grive gr::JsonParser::Parse(char const, unsigned long) 3 0x555f4adc4503 grive gr::http::ValResponse::Write(char const, unsigned long) 4 0x555f4adab0d2 grive gr::http::CurlAgent::Receive(void, unsigned long, unsigned long, gr::http::CurlAgent) 5 0x7f5232378bff /usr/lib/x86_64-linux-gnu/libcurl.so.4 6 0x7f523238aea8 /usr/lib/x86_64-linux-gnu/libcurl.so.4 7 0x7f52323943f4 /usr/lib/x86_64-linux-gnu/libcurl.so.4 8 0x7f5232395811 /usr/lib/x86_64-linux-gnu/libcurl.so.4 curl_multi_perform 9 0x7f523238c1ab /usr/lib/x86_64-linux-gnu/libcurl.so.4 curl_easy_perform 10 0x555f4adab474 grive gr::http::CurlAgent::ExecCurl(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, gr::DataStream*, gr::http::Header const&) 11 0x555f4adab8de grive gr::http::CurlAgent::Request(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, gr::SeekStream, gr::DataStream, gr::http::Header const&, unsigned long long) 12 0x555f4adc48fe grive gr::AuthAgent::Request(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, gr::SeekStream, gr::DataStream, gr::http::Header const&, unsigned long long) 13 0x555f4adaa65c grive gr::http::Agent::Post(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, gr::DataStream, gr::http::Header const&) 14 0x555f4ada76e2 grive gr::v2::Syncer2::Upload(gr::Resource, bool) 15 0x555f4ada67c4 grive gr::v2::Syncer2::Create(gr::Resource) 16 0x555f4adde402 grive gr::Resource::SyncSelf(gr::Syncer, gr::ResourceTree, gr::Val const&) 17 0x555f4addd287 grive gr::Resource::Sync(gr::Syncer, gr::ResourceTree, gr::Val const&) 18 0x555f4ade35ed grive boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>::operator()(gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&) const 19 0x555f4ade2f2c grive void boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree>, boost::_bi::value >::operator()<boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::rrlist1<gr::Resource&> >(boost::_bi::type, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>&, boost::_bi::rrlist1<gr::Resource&>&, int) 20 0x555f4ade25e8 grive void boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree>, boost::_bi::value > >::operator()<gr::Resource&>(gr::Resource&) 21 0x555f4ade10e7 grive boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree>, boost::_bi::value > > std::for_each<__gnu_cxx::normal_iterator<gr::Resource, std::vector<gr::Resource, std::allocator<gr::Resource> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree>, boost::_bi::value > > >(__gnu_cxx::__normal_iterator<gr::Resource, std::vector<gr::Resource, std::allocator<gr::Resource> > >, gnu_cxx::__normal_iterator<gr::Resource*, std::vector<gr::Resource, std::allocator<gr::Resource> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree>, boost::_bi::value > >) 22 0x555f4addd358 grive gr::Resource::Sync(gr::Syncer, gr::ResourceTree, gr::Val const&) 23 0x555f4ade35ed grive boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>::operator()(gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&) const 24 0x555f4ade2f2c grive void boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree>, boost::_bi::value >::operator()<boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::rrlist1<gr::Resource&> >(boost::_bi::type, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>&, boost::_bi::rrlist1<gr::Resource&>&, int) 25 0x555f4ade25e8 grive void boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree>, boost::_bi::value > >::operator()<gr::Resource&>(gr::Resource&) 26 0x555f4ade10e7 grive boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree>, boost::_bi::value > > std::for_each<gnu_cxx::normal_iterator<gr::Resource*, std::vector<gr::Resource, std::allocator<gr::Resource> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value > > >(gnu_cxx::normal_iterator<gr::Resource*, std::vector<gr::Resource, std::allocator<gr::Resource*> > >, __gnu_cxx::normal_iterator<gr::Resource, std::vector<gr::Resource, std::allocator<gr::Resource> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree>, boost::_bi::value > >) 27 0x555f4addd358 grive gr::Resource::Sync(gr::Syncer, gr::ResourceTree, gr::Val const&) 28 0x555f4ade35ed grive boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>::operator()(gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&) const 29 0x555f4ade2f2c grive void boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree>, boost::_bi::value >::operator()<boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::rrlist1<gr::Resource&> >(boost::_bi::type, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>&, boost::_bi::rrlist1<gr::Resource&>&, int) 30 0x555f4ade25e8 grive void boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree>, boost::_bi::value > >::operator()<gr::Resource&>(gr::Resource&) 31 0x555f4ade10e7 grive boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value > > std::for_each<gnu_cxx::normal_iterator<gr::Resource*, std::vector<gr::Resource, std::allocator<gr::Resource> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value > > >(gnu_cxx::normal_iterator<gr::Resource, std::vector<gr::Resource, std::allocator<gr::Resource> > >, __gnu_cxx::__normal_iterator<gr::Resource, std::vector<gr::Resource, std::allocator<gr::Resource> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer, gr::ResourceTree, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer>, boost::_bi::value<gr::ResourceTree>, boost::_bi::value > >) 32 0x555f4addd358 grive gr::Resource::Sync(gr::Syncer, gr::ResourceTree, gr::Val const&) 33 0x555f4ad98a2f grive gr::State::Sync(gr::Syncer*, gr::Val const&) 34 0x555f4ad9356e grive gr::Drive::Update() 35 0x555f4ad75adf grive Main(int, char) 36 0x555f4ad762dd grive main 37 0x7f5231a3fbbb /lib/x86_64-linux-gnu/libc.so.6 __libc_start_main 38 0x555f4ad7425a grive _start

[gr::JsonText] = { "kind": "drive#file", "id": "1p....3c", "etag": "\"VU6ak...N...MDkyNA\"", "selfLink": "https://www.googleapis.com/drive/v2/files/1p...3c", "alternateLink": "https://drive.google.com/drive/folders/1p...3c", "embedLink": "https://drive.google.com/embeddedfolderview?id=1p...3c", "iconLink": "https://drive-thirdparty.googleusercontent.com/16/type/application/vnd.google-apps.folder+48", "title": "C85", "mimeType": "application/vnd.google-apps.folder", "labels": { "starred": false, "hidden": false, "trashed": false, "restricted": false, "viewed": true }, "copyRequiresWriterPermission": false, "createdDate": "2019-12-04T19:02:40.924Z", "modifiedDate": "2019-12-04T19:02:40.924Z", "modifiedByMeDate": "2019-12-04T19:02:40.924Z", "lastViewedByMeDate": "2019-12-04T19:02:40.924Z", "markedViewedByMeDate": "1970-01-01T00:00:00.000Z", "version": "1", "parents": [ { "kind": "drive#parentReference", "id": "1U...Da", "selfLink": "https://www.googleapis.com/drive/v2/files/1p...3c/parents/1U...Da", "parentLink": "https://www.googleapis.com/drive/v2/files/1U...Da", "isRoot": false } ], "userPermission": { [gr::ParseErr] = parse error: trailing garbage { "kind": "drive#file", "id": (right here) ------^

Thank you very for this great tool.

gregsanz182 commented 4 years ago

Same thing happens here 😟 I'm using Manjaro Linux KDE version

request failed due to auth token expired: 401 (body: ). refreshing token
exception: /home/sanchez/Projects/Personal/grive2/libgrive/src/json/JsonParser.cc(165): Throw in function void gr::JsonParser::Parse(const char*, std::size_t)
Dynamic exception type: boost::wrapexcept<gr::JsonParser::Error>
[gr::expt::BacktraceTag*] = #0 0x5625fd618449 grive gr::Exception::Exception()
#1 0x5625fd5f5e1b grive gr::JsonParser::Error::Error()
#2 0x5625fd5f59f8 grive gr::JsonParser::Parse(char const*, unsigned long)
#3 0x5625fd609261 grive gr::http::ValResponse::Write(char const*, unsigned long)
#4 0x5625fd5ec9b6 grive gr::http::CurlAgent::Receive(void*, unsigned long, unsigned long, gr::http::CurlAgent*)
#5 0x7ffb4b562110 /usr/lib/libcurl.so.4 
#6 0x7ffb4b5747e0 /usr/lib/libcurl.so.4 
#7 0x7ffb4b57e3c5 /usr/lib/libcurl.so.4 
#8 0x7ffb4b57f841 /usr/lib/libcurl.so.4 curl_multi_perform
#9 0x7ffb4b575b1c /usr/lib/libcurl.so.4 curl_easy_perform
#10 0x5625fd5ecd64 grive gr::http::CurlAgent::ExecCurl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gr::DataStream*, gr::http::Header const&)
#11 0x5625fd5ed221 grive gr::http::CurlAgent::Request(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gr::SeekStream*, gr::DataStream*, gr::http::Header const&, unsigned long long)
#12 0x5625fd6096c5 grive gr::AuthAgent::Request(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gr::SeekStream*, gr::DataStream*, gr::http::Header const&, unsigned long long)
#13 0x5625fd5e92ed grive gr::v2::Syncer2::Upload(gr::Resource*, bool)
#14 0x5625fd5e7c09 grive gr::v2::Syncer2::Create(gr::Resource*)
#15 0x5625fd62627d grive gr::Resource::SyncSelf(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
#16 0x5625fd6250c6 grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
#17 0x5625fd62bab7 grive boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>::operator()(gr::Resource*, gr::Syncer*, gr::ResourceTree*, gr::Val const&) const
#18 0x5625fd62b2dc grive void boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> >::operator()<boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::rrlist1<gr::Resource*&> >(boost::_bi::type<void>, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>&, boost::_bi::rrlist1<gr::Resource*&>&, int)
#19 0x5625fd62a7db grive void boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > >::operator()<gr::Resource*&>(gr::Resource*&)
#20 0x5625fd629070 grive boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > > std::for_each<__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > > >(__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, __gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > >)
#21 0x5625fd62519d grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
#22 0x5625fd62bab7 grive boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>::operator()(gr::Resource*, gr::Syncer*, gr::ResourceTree*, gr::Val const&) const
#23 0x5625fd62b2dc grive void boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> >::operator()<boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::rrlist1<gr::Resource*&> >(boost::_bi::type<void>, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>&, boost::_bi::rrlist1<gr::Resource*&>&, int)
#24 0x5625fd62a7db grive void boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > >::operator()<gr::Resource*&>(gr::Resource*&)
#25 0x5625fd629070 grive boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > > std::for_each<__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > > >(__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, __gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > >)
#26 0x5625fd62519d grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
#27 0x5625fd62bab7 grive boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>::operator()(gr::Resource*, gr::Syncer*, gr::ResourceTree*, gr::Val const&) const
#28 0x5625fd62b2dc grive void boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> >::operator()<boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::rrlist1<gr::Resource*&> >(boost::_bi::type<void>, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>&, boost::_bi::rrlist1<gr::Resource*&>&, int)
#29 0x5625fd62a7db grive void boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > >::operator()<gr::Resource*&>(gr::Resource*&)
#30 0x5625fd629070 grive boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > > std::for_each<__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > > >(__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, __gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > >)
#31 0x5625fd62519d grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
#32 0x5625fd62bab7 grive boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>::operator()(gr::Resource*, gr::Syncer*, gr::ResourceTree*, gr::Val const&) const
#33 0x5625fd62b2dc grive void boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> >::operator()<boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::rrlist1<gr::Resource*&> >(boost::_bi::type<void>, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>&, boost::_bi::rrlist1<gr::Resource*&>&, int)
#34 0x5625fd62a7db grive void boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > >::operator()<gr::Resource*&>(gr::Resource*&)
#35 0x5625fd629070 grive boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > > std::for_each<__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > > >(__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, __gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > >)
#36 0x5625fd62519d grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
#37 0x5625fd62bab7 grive boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>::operator()(gr::Resource*, gr::Syncer*, gr::ResourceTree*, gr::Val const&) const
#38 0x5625fd62b2dc grive void boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> >::operator()<boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::rrlist1<gr::Resource*&> >(boost::_bi::type<void>, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>&, boost::_bi::rrlist1<gr::Resource*&>&, int)
#39 0x5625fd62a7db grive void boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > >::operator()<gr::Resource*&>(gr::Resource*&)
#40 0x5625fd629070 grive boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > > std::for_each<__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > > >(__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, __gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > >)
#41 0x5625fd62519d grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
#42 0x5625fd62bab7 grive boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>::operator()(gr::Resource*, gr::Syncer*, gr::ResourceTree*, gr::Val const&) const
#43 0x5625fd62b2dc grive void boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> >::operator()<boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::rrlist1<gr::Resource*&> >(boost::_bi::type<void>, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>&, boost::_bi::rrlist1<gr::Resource*&>&, int)
#44 0x5625fd62a7db grive void boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > >::operator()<gr::Resource*&>(gr::Resource*&)
#45 0x5625fd629070 grive boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > > std::for_each<__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > > >(__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, __gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf3<void, gr::Resource, gr::Syncer*, gr::ResourceTree*, gr::Val const&>, boost::_bi::list4<boost::arg<1>, boost::_bi::value<gr::Syncer*>, boost::_bi::value<gr::ResourceTree*>, boost::_bi::value<gr::Val> > >)
#46 0x5625fd62519d grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
#47 0x5625fd5d8f27 grive gr::State::Sync(gr::Syncer*, gr::Val const&)
#48 0x5625fd5d3793 grive gr::Drive::Update()
#49 0x5625fd5b10e1 grive Main(int, char**)
#50 0x5625fd5b1aa3 grive main
#51 0x7ffb4ad49023 /usr/lib/libc.so.6 __libc_start_main
#52 0x5625fd5af37e grive _start

[gr::JsonText*] = {
 "kind": "drive#file",
 "id": "1W5D-hsqCdg2mpn-a0y6YBuQa4BBWYWm9",
 "etag": "\"LrGgEMAIqqQuhm7ovRQX7yBBvMY/MTU4NDk5OTIwNzcwOA\"",
 "selfLink": "https://www.googleapis.com/drive/v2/files/1W5D-hsqCdg2mpn-a0y6YBuQa4BBWYWm9",
 "webContentLink": "https://drive.google.com/a/unet.edu.ve/uc?id=1W5D-hsqCdg2mpn-a0y6YBuQa4BBWYWm9&export=download",
 "alternateLink": "https://drive.google.com/a/unet.edu.ve/file/d/1W5D-hsqCdg2mpn-a0y6YBuQa4BBWYWm9/view?usp=drivesdk",
 "embedLink": "https://drive.google.com/a/unet.edu.ve/file/d/1W5D-hsqCdg2mpn-a0y6YBuQa4BBWYWm9/preview?usp=drivesdk",
 "iconLink": "https://drive-thirdparty.googleusercontent.com/16/type/audio/mpeg",
 "title": "03- Weak And Powerless (Live).mp3",
 "mimeType": "audio/mpeg",
 "labels": {
  "starred": false,
  "hidden": false,
  "trashed": false,
  "restricted": false,
  "viewed": true
 },
 "copyRequiresWriterPermission": false,
 "createdDate": "2020-03-23T21:33:27.708Z",
 "modifiedDate": "2020-03-23T21:33:27.708Z",
 "modifiedByMeDate": "2020-03-23T21:33:27.708Z",
 "lastViewedByMeDate": "2020-03-23T21:33:27.708Z",
 "markedViewedByMeDate": "1970-01-01T00:00:00.000Z",
 "version": "1",
 "parents": [
  {
   "kind": "drive#parentRefere
[gr::ParseErr*] = parse error: trailing garbage
                                       {  "kind": "drive#file",  "id":
                     (right here) ------^
pirofti commented 4 years ago

I had the same problem after running grive the second time. My current work around is to pass id and secret parameters by hand when running it from the command line.

Simbi0z commented 3 years ago
> request failed due to auth token expired: 401 (body: ). refreshing token
> exception: /home/oiu7/.cache/pikaur/build/grive-git/src/grive-git/libgrive/src/json/JsonParser.cc(165): Throw in function void gr::JsonParser
> ::Parse(const char*, std::size_t)
> Dynamic exception type: boost::wrapexcept<gr::JsonParser::Error>
> [gr::expt::BacktraceTag*] = #0 0x555581c3d07a grive gr::Exception::Exception()
> #1 0x555581c18b1f grive gr::JsonParser::Parse(char const*, unsigned long)
> #2 0x555581c2c6ef grive gr::http::ValResponse::Write(char const*, unsigned long)
> #3 0x7f8778c74255 /usr/lib/libcurl.so.4
> #4 0x7f8778c86915 /usr/lib/libcurl.so.4
> #5 0x7f8778c6a6b5 /usr/lib/libcurl.so.4
> #6 0x7f8778c6bb76 /usr/lib/libcurl.so.4 curl_multi_perform
> #7 0x7f8778c41a8c /usr/lib/libcurl.so.4 curl_easy_perform
> #8 0x555581c10162 grive gr::http::CurlAgent::ExecCurl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&,
>  gr::DataStream*, gr::http::Header const&)
> #9 0x555581c2e50b grive gr::AuthAgent::Request(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::_
> _cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, gr::SeekStream*, gr::DataStream*, gr::http::Header const&,
> unsigned long long)
> #10 0x555581c0d9b4 grive gr::v2::Syncer2::Upload(gr::Resource*, bool)
> #11 0x555581c4d70f grive gr::Resource::SyncSelf(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
> #12 0x555581c4db15 grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
> #13 0x555581c4dc39 grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
> #14 0x555581c4dc39 grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
> #15 0x555581c4dc39 grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
> #16 0x555581c4dc39 grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
> #17 0x555581c4dc39 grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
> #18 0x555581c4dc39 grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
> #19 0x555581c4dc39 grive gr::Resource::Sync(gr::Syncer*, gr::ResourceTree*, gr::Val const&)
> #20 0x555581bf06a3 grive gr::Drive::Update()
> #21 0x555581be075e grive Main(int, char**)
> #22 0x555581bdd9e9 grive main
> #23 0x7f87763db152 /usr/lib/libc.so.6 __libc_start_main
> #24 0x555581bde53e grive _start