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 378 forks source link

2gb filesize limit #64

Open indian4646 opened 12 years ago

indian4646 commented 12 years ago

Hi~ I am trying to upload over 2Gb file to Google drvie but it happens some error indicate file is too large from boost. Does it have any solution can help me to solve this problems? I also can not upload 1.9Gb file successfully but It don't display any error.

My Grive version is 0.2.0-pre, Thank a lot.

ls -rw-r--r-- 1 root root 2202009600 Jun 15 09:56 2G

Reading local directories exception: /usr/local/Grive-grive-ea4fda5/libgrive/src/util/OS.cc(57): Throw in function gr::DateTime gr::os::FileCTime(const std::string&) Dynamic exception type: boost::exception_detail::clone_implgr::os::Error std::exception::what: std::exception [boost::errinfo_file_name__] = ./2G [boost::errinfo_errno] = 75, "Value too large for defined data type" [boost::errinfo_api_function] = stat [gr::expt::BacktraceTag_] = #0 0x80f7a5a :0 gr::Exception::Exception()

1 0x80f5553 :0 gr::os::Error::Error()

2 0x80f37e7 :0 gr::os::FileCTime(std::string const&)

3 0x80f38fe :0 gr::os::FileCTime(boost::filesystem3::path const&)

4 0x80dca74 :0 gr::Resource::FromLocal(gr::DateTime const&)

5 0x80d5926 :0 gr::State::FromLocal(boost::filesystem3::path const&, gr::Resource*)

6 0x80d5a5f :0 gr::State::FromLocal(boost::filesystem3::path const&)

7 0x80cf6c6 :0 gr::Drive::Drive(gr::OAuth2&, gr::Json const&)

8 0x80bc569 :0 Main(int, char**)

9 0x80bc6f5 :0 main

10 0xb7b7d050 /opt/cross-project/x86/sys-root/lib/tls/i686/cmov/libc.so.6 __libc_start_main

11 0x80bac91 :0 _start

nestal commented 12 years ago

looks like I need to use stat64() instead.

indian4646 commented 12 years ago

I upload about 1.9G file but it also fail, log message doesn't display any error. just "sync "./1_9G" doesn't exist in server, uploading",

ls -al -rw-r--r-- 1 root root 2097152000 Jun 15 10:03 1_9G

The same file size in another machine, it display

terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Aborted

nestal commented 12 years ago

Grive currently allocate memory to hold the whole file...

Its quite stupid...