Possibly it's a concurrency error in the sftp library you're using.
Compile with "-race" flag and test it - it should print out the offending 
code.

Phillip Siessl a következőt írta (2023. augusztus 23., szerda, 14:37:10 
UTC+2):

> Hi 
>
> i have some issues when i try to download a larger zip file (5GB) via the 
> sftp package in go. 
> about 20% of the time it runs through smoothly but the other 80% i get a 
> panic with
> "fatal error: concurrent map writes writing to file" or "fatal error: 
> concurrent map read and map write".
>
> this is the code for the download function: 
>
> func DownloadZip(sc sftp.Client, remoteFile, localFile string) (err error) 
> {
>
> fmt.Fprintf(os.Stdout, "Downloading [%s] to [%s] ...\n", remoteFile, 
> localFile)
> srcFile, err := sc.OpenFile(remoteFile, (os.O_RDONLY))
> if err != nil {
> fmt.Fprintf(os.Stderr, "Unable to open remote file: %v\n", err)
> return
> }
>
> defer srcFile.Close()
> fmt.Println("Create locale file")
> dstFile, err := os.Create(localFile)
> if err != nil {
> fmt.Fprintf(os.Stderr, "Unable to open local file: %v\n", err)
> return
> }
> defer dstFile.Close()
> fmt.Println("Copy remote file")
> bytes, err := io.Copy(dstFile, srcFile)
> if err != nil {
> fmt.Fprintf(os.Stderr, "Unable to download remote file: %v\n", err)
> os.Exit(1)
> }
> fmt.Println("Save local file")
> fmt.Fprintf(os.Stdout, "%d bytes copied\n", bytes)
>
> return
> }
>
>
> If anybody has some ideas i would be very happy. thx
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/c0c72354-e386-4cbd-9534-f9fd1e639455n%40googlegroups.com.

Reply via email to