{"action":"created","issue":{"url":"https://api.github.com/repos/git-lfs/git-lfs/issues/1729","repository_url":"https://api.github.com/repos/git-lfs/git-lfs","labels_url":"https://api.github.com/repos/git-lfs/git-lfs/issues/1729/labels{/name}","comments_url":"https://api.github.com/repos/git-lfs/git-lfs/issues/1729/comments","events_url":"https://api.github.com/repos/git-lfs/git-lfs/issues/1729/events","html_url":"https://github.com/git-lfs/git-lfs/issues/1729","id":192825268,"number":1729,"title":"Decoding a pointer is a fatal error - should we just warn?","user":{"login":"larsxschneider","id":477434,"avatar_url":"https://avatars.githubusercontent.com/u/477434?v=3","gravatar_id":"","url":"https://api.github.com/users/larsxschneider","html_url":"https://github.com/larsxschneider","followers_url":"https://api.github.com/users/larsxschneider/followers","following_url":"https://api.github.com/users/larsxschneider/following{/other_user}","gists_url":"https://api.github.com/users/larsxschneider/gists{/gist_id}","starred_url":"https://api.github.com/users/larsxschneider/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/larsxschneider/subscriptions","organizations_url":"https://api.github.com/users/larsxschneider/orgs","repos_url":"https://api.github.com/users/larsxschneider/repos","events_url":"https://api.github.com/users/larsxschneider/events{/privacy}","received_events_url":"https://api.github.com/users/larsxschneider/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":10,"created_at":"2016-12-01T11:51:30Z","updated_at":"2016-12-12T17:59:28Z","closed_at":null,"body":"If GitLFS cannot decode a pointer file then it fails. This can happen if a user tracks `*.bin` files on a case *sensitive* file system. GitLFS would not track `*.BIN` files on that system. If another users works with the repo on a case *insensitive* file system then GitLFS would try to decode pointers for the `*.BIN` which would fail.  I wonder if it should rather just warn the user in that case? \r\n\r\nPlus the failure is different for large and small files (@ttaylorr I assume this is because we read the first 1024 bytes of the pointer, right?).\r\n\r\n## Testcase:\r\n\r\n```\r\ngit version 2.11.0\r\ngit-lfs/1.5.2 (GitHub; darwin amd64; go 1.7.3)\r\n```\r\n\r\nError message if decoding of a large file fails:\r\n```\r\n$ git clone --branch largefile git@github.com:larsxschneider/lfstest-individual-files.git smudge-error\r\nCloning into 'smudge-error'...\r\nremote: Counting objects: 33, done.\r\nremote: Compressing objects: 100% (10/10), done.\r\nremote: Total 33 (delta 2), reused 0 (delta 0), pack-reused 21\r\nReceiving objects: 100% (33/33), 6.21 KiB | 0 bytes/s, done.\r\nResolving deltas: 100% (5/5), done.\r\nfatal: big-file1.bin: smudge filter lfs failed\r\npanic: runtime error: index out of range\r\n\r\ngoroutine 1 [running]:\r\npanic(0x3a1400, 0xc420010250)\r\n\t/usr/local/Cellar/go/1.7.3/libexec/src/runtime/panic.go:500 +0x1a1\r\ngithub.com/git-lfs/git-lfs/git.(*FilterProcessScanner).readRequest(0xc420172fc0, 0xc4200f51f0, 0x0, 0xc420051a10)\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/src/github.com/git-lfs/git-lfs/git/filter_process_scanner.go:181 +0x218\r\ngithub.com/git-lfs/git-lfs/git.(*FilterProcessScanner).Scan(0xc420172fc0, 0x402e11)\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/src/github.com/git-lfs/git-lfs/git/filter_process_scanner.go:143 +0x50\r\ngithub.com/git-lfs/git-lfs/commands.filterCommand(0xc4200e9380, 0x602ba0, 0x0, 0x0)\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/src/github.com/git-lfs/git-lfs/commands/command_filter_process.go:76 +0x1f9\r\ngithub.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra.(*Command).execute(0xc4200e9380, 0x602ba0, 0x0, 0x0, 0xc4200e9380, 0x602ba0)\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/src/github.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra/command.go:477 +0x170\r\ngithub.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra.(*Command).Execute(0xc4200e84e0, 0xc420051ed0, 0x1)\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/src/github.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra/command.go:551 +0x380\r\ngithub.com/git-lfs/git-lfs/commands.Run()\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/src/github.com/git-lfs/git-lfs/commands/run.go:65 +0x196\r\nmain.main()\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/git-lfs.go:33 +0x111\r\nwarning: Clone succeeded, but checkout failed.\r\nYou can inspect what was checked out with 'git status'\r\nand retry the checkout with 'git checkout -f HEAD'\r\n```\r\n\r\nError message if decoding of a small file fails:\r\n```\r\n$ git clone --branch smallfile git@github.com:larsxschneider/lfstest-individual-files.git smudge-error\r\nCloning into 'smudge-error'...\r\nremote: Counting objects: 33, done.\r\nremote: Compressing objects: 100% (10/10), done.\r\nremote: Total 33 (delta 2), reused 0 (delta 0), pack-reused 21\r\nReceiving objects: 100% (33/33), 6.21 KiB | 0 bytes/s, done.\r\nResolving deltas: 100% (5/5), done.\r\nfatal: big-file1.bin: smudge filter lfs failed\r\nwarning: Clone succeeded, but checkout failed.\r\nYou can inspect what was checked out with 'git status'\r\nand retry the checkout with 'git checkout -f HEAD'\r\n```\r\n\r\nPlus, even if we disable the smudge filter, the checkout fails:\r\n```\r\n$ GIT_LFS_SKIP_SMUDGE=1 git clone --branch largefile git@github.com:larsxschneider/lfstest-individual-files.git smudge-error\r\nCloning into 'smudge-error'...\r\nremote: Counting objects: 33, done.\r\nremote: Compressing objects: 100% (10/10), done.\r\nremote: Total 33 (delta 2), reused 0 (delta 0), pack-reused 21\r\nReceiving objects: 100% (33/33), 6.21 KiB | 0 bytes/s, done.\r\nResolving deltas: 100% (5/5), done.\r\nfatal: big-file1.bin: smudge filter lfs failed\r\npanic: runtime error: index out of range\r\n\r\ngoroutine 1 [running]:\r\npanic(0x3a1400, 0xc420010250)\r\n\t/usr/local/Cellar/go/1.7.3/libexec/src/runtime/panic.go:500 +0x1a1\r\ngithub.com/git-lfs/git-lfs/git.(*FilterProcessScanner).readRequest(0xc420135dc0, 0xc420106a30, 0x0, 0xc420051a10)\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/src/github.com/git-lfs/git-lfs/git/filter_process_scanner.go:181 +0x218\r\ngithub.com/git-lfs/git-lfs/git.(*FilterProcessScanner).Scan(0xc420135dc0, 0x402e11)\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/src/github.com/git-lfs/git-lfs/git/filter_process_scanner.go:143 +0x50\r\ngithub.com/git-lfs/git-lfs/commands.filterCommand(0xc4200f8000, 0x602ba0, 0x0, 0x0)\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/src/github.com/git-lfs/git-lfs/commands/command_filter_process.go:76 +0x1f9\r\ngithub.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra.(*Command).execute(0xc4200f8000, 0x602ba0, 0x0, 0x0, 0xc4200f8000, 0x602ba0)\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/src/github.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra/command.go:477 +0x170\r\ngithub.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra.(*Command).Execute(0xc42008d040, 0xc420051ed0, 0x1)\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/src/github.com/git-lfs/git-lfs/vendor/github.com/spf13/cobra/command.go:551 +0x380\r\ngithub.com/git-lfs/git-lfs/commands.Run()\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/src/github.com/git-lfs/git-lfs/commands/run.go:65 +0x196\r\nmain.main()\r\n\t/private/tmp/git-lfs-20161122-73173-1n7qhbi/git-lfs-1.5.2/git-lfs.go:33 +0x111\r\nwarning: Clone succeeded, but checkout failed.\r\nYou can inspect what was checked out with 'git status'\r\nand retry the checkout with 'git checkout -f HEAD'\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/git-lfs/git-lfs/issues/comments/266503074","html_url":"https://github.com/git-lfs/git-lfs/issues/1729#issuecomment-266503074","issue_url":"https://api.github.com/repos/git-lfs/git-lfs/issues/1729","id":266503074,"user":{"login":"mrobbeloth-pdi","id":7305208,"avatar_url":"https://avatars.githubusercontent.com/u/7305208?v=3","gravatar_id":"","url":"https://api.github.com/users/mrobbeloth-pdi","html_url":"https://github.com/mrobbeloth-pdi","followers_url":"https://api.github.com/users/mrobbeloth-pdi/followers","following_url":"https://api.github.com/users/mrobbeloth-pdi/following{/other_user}","gists_url":"https://api.github.com/users/mrobbeloth-pdi/gists{/gist_id}","starred_url":"https://api.github.com/users/mrobbeloth-pdi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrobbeloth-pdi/subscriptions","organizations_url":"https://api.github.com/users/mrobbeloth-pdi/orgs","repos_url":"https://api.github.com/users/mrobbeloth-pdi/repos","events_url":"https://api.github.com/users/mrobbeloth-pdi/events{/privacy}","received_events_url":"https://api.github.com/users/mrobbeloth-pdi/received_events","type":"User","site_admin":false},"created_at":"2016-12-12T17:59:28Z","updated_at":"2016-12-12T17:59:28Z","body":"I'm seeing the following error:\r\n\r\nCloning into '/mnt/build/mrobbeloth/projects/BuildScripts/main_5.0_aio/myandroid/frameworks'...\r\nPOST git-upload-pack (303 bytes)\r\nChecking out files:  55% (20151/36637)   \r\nfatal: base/media/tests/contents/media_api/videoeditor/AACLC_44.1kHz_256kbps_s_1_17.mp4: smudge filter lfs failed\r\nwarning: Clone succeeded, but checkout failed.\r\nYou can inspect what was checked out with 'git status'\r\nand retry the checkout with 'git checkout -f HEAD'\r\n\r\nThe checkout process occurs as part of a crontab started bash script. The entire set of repos are checked out fresh every night in a new subdirectory to make sure no errors have crept in due to local caching. \r\n\r\nI followed the process above on the file mentioned in this error message and still get the same result.\r\n\r\nMichael\r\n\r\n"}}
{"actor":{"display_login":"mrobbeloth-pdi"}}