Grive / grive

an open source Linux client for Google Drive
http://www.lbreda.com/grive/start
GNU General Public License v2.0
1.59k stars 379 forks source link

Throw in function long int gr::http::CurlAgent::ExecCurl( #82

Open fpn opened 12 years ago

fpn commented 12 years ago

Hi,

I get these crashes regularly on upload. Running on FC15 with head = commit 34cb3705288aa83283b370118776ac89393ae5fc

The amount of files is quite large, it is basically my collection of images I took over the years.

Thank you, Florian

sync "./Pictures/<**removed**>.JPG" doesn't exist in server, uploading
exception: /home/fpn/cray/grive/libgrive/src/http/CurlAgent.cc(149): Throw in function long int gr::http::CurlAgent::ExecCurl(const st
ring&, gr::http::Receivable*, const gr::http::Header&)
Dynamic exception type: boost::exception_detail::clone_impl<gr::http::Error>
std::exception::what: std::exception
[gr::expt::BacktraceTag*] = #0 0x468bcf :0 gr::Exception::Exception()
#1 0x457e20 :0 gr::http::CurlAgent::ExecCurl(std::string const&, gr::http::Receivable*, gr::http::Header const&)
#2 0x4583d7 :0 gr::http::CurlAgent::Put(std::string const&, std::string const&, gr::http::Receivable*, gr::http::Header const&)
#3 0x444e84 :0 gr::Resource::Upload(gr::http::Agent*, std::string const&, gr::http::Header const&, bool)
#4 0x4455cc :0 gr::Resource::Create(gr::http::Agent*, gr::http::Header const&)
#5 0x446d8a :0 gr::Resource::SyncSelf(gr::http::Agent*, gr::http::Header const&)
#6 0x446fd9 :0 gr::Resource::Sync(gr::http::Agent*, gr::http::Header const&)
#7 0x4473c5 :0 boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::l
ist3<boost::arg<1>, boost::_bi::value<gr::http::Agent*>, boost::_bi::value<gr::http::Header> > > std::for_each<__gnu_cxx::__normal_ite
rator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr
::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3<boost::arg<1>, boost::_bi::value<gr::http::Agent*>, boost::_
bi::value<gr::http::Header> > > >(__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<v
oid, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3<boost::arg<1>, boost::_bi::val
ue<gr::http::Agent*>, boost::_bi::value<gr::http::Header> > >)
#8 0x44704e :0 gr::Resource::Sync(gr::http::Agent*, gr::http::Header const&)
#9 0x4473c5 :0 boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::l
ist3<boost::arg<1>, boost::_bi::value<gr::http::Agent*>, boost::_bi::value<gr::http::Header> > > std::for_each<__gnu_cxx::__normal_ite
rator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr
::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3<boost::arg<1>, boost::_bi::value<gr::http::Agent*>, boost::_bi::value<gr::http::Header> > > >(__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::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3<boost::arg<1>, boost::_bi::value<gr::http::Agent*>, boost::_bi::value<gr::http::Header> > >)
#10 0x44704e :0 gr::Resource::Sync(gr::http::Agent*, gr::http::Header const&)

#11 0x4473c5 :0 boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3<boost::arg<1>, boost::_bi::value<gr::http::Agent*>, boost::_bi::value<gr::http::Header> > > std::for_each<__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3<boost::arg<1>, boost::_bi::value<gr::http::Agent*>, boost::_bi::value<gr::http::Header> > > >(__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::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3<boost::arg<1>, boost::_bi::value<gr::http::Agent*>, boost::_bi::value<gr::http::Header> > >)
#12 0x44704e :0 gr::Resource::Sync(gr::http::Agent*, gr::http::Header const&)
#13 0x4473c5 :0 boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3<boost::arg<1>, boost::_bi::value<gr::http::Agent*>, boost::_bi::value<gr::http::Header> > > std::for_each<__gnu_cxx::__normal_iterator<gr::Resource**, std::vector<gr::Resource*, std::allocator<gr::Resource*> > >, boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3<boost::arg<1>, boost::_bi::value<gr::http::Agent*>, boost::_bi::value<gr::http::Header> > > >(__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::mf2<void, gr::Resource, gr::http::Agent*, gr::http::Header const&>, boost::_bi::list3<boost::arg<1>, boost::_bi::value<gr::http::Agent*>, boost::_bi::value<gr::http::Header> > >)
#14 0x44704e :0 gr::Resource::Sync(gr::http::Agent*, gr::http::Header const&)
#15 0x44c69f :0 gr::State::Sync(gr::http::Agent*, gr::http::Header const&)
#16 0x439315 :0 gr::Drive::Update()
#17 0x42a2ec :0 Main(int, char**)
#18 0x4270d9 :0 main
#19 0x36a982135d /lib64/libc.so.6 __libc_start_main
#20 0x427d41 :0 _start

[gr::expt::MsgTag*] = 
[gr::http::CurlCodeTag*] = 0
[gr::http::HttpResponseTag*] = 500
[gr::http::UrlTag*] = https://docs.google.com/feeds/upload/create-session/default/private/full/folder%3A0B4NkVlvCqxhzZnBla2Z5NTRUS0U/contents?convert=false&upload_id=AEnB2Uox-UhsJqTSqyo6RSR_fG5Ck_545soYZmcScELbPM4GuLjOIJsnhms30XAlvXIVzZW5emrceNz1zc76qVDuvkBnb6-RMA
[gr::http::HeaderTag*] = Expect:
Accept:
nestal commented 12 years ago

For HTTP 500, please try running Grive again and it should work.

fpn commented 12 years ago

Hi Nestal, I was doing a while true bash loop around it, as it failed every couple of minutes, but thought that wasn't the right mode of operation. I thought it may have to do with the linked libraries, I am rebuilding the machine this week and will let you know if I see the same behavior once it is on CentOS 6.

Thanks, Florian

On Jul 2, 2012, at 7:14 AM, Nestal Wan reply@reply.github.com wrote:

For HTTP 500, please try running Grive again and it should work.


Reply to this email directly or view it on GitHub: https://github.com/Grive/grive/issues/82#issuecomment-6709223

nestal commented 12 years ago

Thanks Florian.

The google servers use this code to tell us that the requests are being made to quickly. We should improve Grive so that it will limit its request rate.

bsphere commented 11 years ago

I'm having the same problem while trying to upload a large backup of all my photos, it fails every few minutes and I need to restart the sync process, also, 'Reading local directories' takes a very long time for every restart. (it's ~32GB photo collection)

I'm on Ubuntu 12.04 :

exception: /build/buildd/grive-0.2.0/libgrive/src/http/CurlAgent.cc(149): Throw in function long int gr::http::CurlAgent::ExecCurl(const string&, gr::http::Receivable_, const gr::http::Header&) Dynamic exception type: boost::exception_detail::cloneimplgr::http::Error std::exception::what: std::exception [gr::expt::BacktraceTag] = #0 0x46017f grive gr::Exception::Exception()

1 0x44f489 grive gr::http::CurlAgent::ExecCurl(std::string const&, gr::http::Receivable_, gr::http::Header const&)

2 0x44fa17 grive gr::http::CurlAgent::Put(std::string const&, std::string const&, gr::http::Receivable_, gr::http::Header const&)

3 0x444514 grive gr::Resource::Upload(gr::http::Agent_, std::string const&, gr::http::Header const&, bool)

4 0x444c8c grive gr::Resource::Create(gr::http::Agent_, gr::http::Header const&)

5 0x44647a grive gr::Resource::SyncSelf(gr::http::Agent_, gr::http::Header const&)

6 0x4466c9 grive gr::Resource::Sync(gr::http::Agent_, gr::http::Header const&)

7 0x446ab5 grive boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent, boost::_bi::valuegr::http::Header > > std::for_each<gnu_cxx::__normal_iterator<gr::Resource*, std::vector<gr::Resource, std::allocator<gr::Resource> > >, boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header > > >(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::mf2<void, gr::Resource, gr::http::Agent, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header > >)

8 0x44673e grive gr::Resource::Sync(gr::http::Agent_, gr::http::Header const&)

9 0x446ab5 grive boost::_bi::bind_t<void, boost::mfi::mf2<void, gr::Resource, gr::http::Agent, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header > > std::for_each<gnu_cxx::__normal_iterator<gr::Resource*, std::vector<gr::Resource, std::allocator<gr::Resource> > >, boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header > > >(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::mf2<void, gr::Resource, gr::http::Agent, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header > >)

10 0x44673e grive gr::Resource::Sync(gr::http::Agent_, gr::http::Header const&)

11 0x446ab5 grive boost::_bi::bind_t<void, boost::mfi::mf2<void, gr::Resource, gr::http::Agent, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header > > std::for_each<gnu_cxx::__normal_iterator<gr::Resource*, std::vector<gr::Resource, std::allocator<gr::Resource> > >, boost::_bi::bind_t<void, boost::_mfi::mf2<void, gr::Resource, gr::http::Agent, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header > > >(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::mf2<void, gr::Resource, gr::http::Agent, gr::http::Header const&>, boost::_bi::list3boost::arg<1, boost::_bi::valuegr::http::Agent*, boost::_bi::valuegr::http::Header > >)

12 0x44673e grive gr::Resource::Sync(gr::http::Agent_, gr::http::Header const&)

13 0x43be4f grive gr::State::Sync(gr::http::Agent_, gr::http::Header const&)

14 0x436a45 grive gr::Drive::Update()

15 0x42786c grive Main(int, char**)

16 0x424629 grive main

17 0x7f5ddc37d76d /lib/x86_64-linux-gnu/libc.so.6 __libc_start_main

18 0x425291 grive

[gr::expt::MsgTag] = [gr::http::CurlCodeTag] = 0 [gr::http::HttpResponseTag] = 500 [gr::http::UrlTag] = https://docs.google.com/feeds/upload/create-session/default/private/full/folder%3A0B4B09hw4wGpgcXBOZFpSSExZR0U/contents?convert=false&upload_id=AEnB2Uof0tWZJSsng-ehrjxGSmTaIyZs-0v4EP_5E57peDikxG2QumAjkCSDDzf4GW3uOXdDu2yrfjRgCjAJopR8m3P2StUJSw [gr::http::HeaderTag*] = Expect: Accept:

mreiter commented 11 years ago

I'm having the same issue on Ubuntu 12.04 when trying to sync my relatively large Google Drive content (13.2 GB) to the local disk. I built grive today with the latest code from the git repository.

Thanks, Moritz

taisph commented 11 years ago

I'm getting an exception similar to this only with an HTTP error 400.