Skip to content

[Bug]: SFTPGO_HOOK__MEMORY_PIPES__ENABLED env variable not working #2109

@MichalisDBA

Description

@MichalisDBA

⚠️ This issue respects the following points: ⚠️

  • This is a bug, not a question or a configuration issue.
  • This issue is not already reported on Github (I've searched it).

Bug description

Hello.

I enabled the SFTPGO_HOOK__MEMORY_PIPES__ENABLED=1 in sftpgo.env and restart the sftpgo service but when i initiate a transfer to a S3 backend i see with lsof | grep -i deleted | grep sftp command that sftp go still writes local temp files. Why is this happening?

sftpgo    18123                 sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18125 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18126 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18127 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18128 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18129 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18130 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18131 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18132 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18134 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18185 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18186 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18205 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)
sftpgo    18123 18206 sftpgo    sftpgo   13u      REG              253,0      47333376   35270758 /tmp/pipefile2148839408 (deleted)

Steps to reproduce

Expected behavior

It should not create local temp files

SFTPGo version

2.7.0

Data provider

S3

Installation method

Community RPM package

Configuration

{
  "common": {
    "idle_timeout": 15,
    "upload_mode": 0,
    "actions": {
      "execute_on": [],
      "execute_sync": [],
      "hook": ""
    },
    "setstat_mode": 0,
    "rename_mode": 0,
    "resume_max_size": 0,
    "temp_path": "",
    "proxy_protocol": 0,
    "proxy_allowed": [],
    "proxy_skipped": [],
    "startup_hook": "",
    "post_connect_hook": "",
    "post_disconnect_hook": "",
    "max_total_connections": 0,
    "max_per_host_connections": 20,
    "allowlist_status": 0,
    "allow_self_connections": 0,
    "umask": "",
    "server_version": "",
    "tz": "",
    "metadata": {
      "read": 0
    },
    "defender": {
      "enabled": false,
      "driver": "memory",
      "ban_time": 30,
      "ban_time_increment": 50,
      "threshold": 15,
      "score_invalid": 2,
      "score_valid": 1,
      "score_limit_exceeded": 3,
      "score_no_auth": 0,
      "observation_time": 30,
      "entries_soft_limit": 100,
      "entries_hard_limit": 150,
      "login_delay": {
        "success": 0,
        "password_failed": 1000
      }
    },
    "rate_limiters": [
      {
        "average": 0,
        "period": 1000,
        "burst": 1,
        "type": 2,
        "protocols": [
          "SSH",
          "FTP",
          "DAV",
          "HTTP"
        ],
        "generate_defender_events": false,
        "entries_soft_limit": 100,
        "entries_hard_limit": 150
      }
    ],
    "event_manager": {
      "enabled_commands": []
    }
  },
  "acme": {
    "domains": [],
    "email": "",
    "key_type": "4096",
    "certs_path": "/var/lib/sftpgo/certs",
    "ca_endpoint": "https://acme-v02.api.letsencrypt.org/directory",
    "renew_days": 30,
    "http01_challenge": {
      "port": 80,
      "proxy_header": "",
      "webroot": ""
    },
    "tls_alpn01_challenge": {
      "port": 0
    }
  },
  "sftpd": {
    "bindings": [
      {
        "port": 2022,
        "address": "",
        "apply_proxy_config": true
      }
    ],
    "max_auth_tries": 0,
    "host_keys": [],
    "host_certificates": [],
    "host_key_algorithms": [],
    "kex_algorithms": [],
    "ciphers": [],
    "macs": [],
    "public_key_algorithms": [],
    "trusted_user_ca_keys": [],
    "revoked_user_certs_file": "",
    "login_banner_file": "",
    "enabled_ssh_commands": [
      "md5sum",
      "sha1sum",
      "sha256sum",
      "cd",
      "pwd",
      "scp"
    ],
    "keyboard_interactive_authentication": true,
    "keyboard_interactive_auth_hook": "",
    "password_authentication": true
  },
  "ftpd": {
    "bindings": [
      {
        "port": 0,
        "address": "",
        "apply_proxy_config": true,
        "tls_mode": 0,
        "certificate_file": "",
        "certificate_key_file": "",
        "min_tls_version": 12,
        "force_passive_ip": "",
        "passive_ip_overrides": [],
        "passive_host": "",
        "client_auth_type": 0,
        "tls_cipher_suites": [],
        "passive_connections_security": 0,
        "active_connections_security": 0,
        "debug": false
      }
    ],
    "banner_file": "",
    "active_transfers_port_non_20": true,
    "passive_port_range": {
      "start": 50000,
      "end": 50100
    },
    "disable_active_mode": false,
    "enable_site": false,
    "hash_support": 0,
    "combine_support": 0,
    "certificate_file": "",
    "certificate_key_file": "",
    "ca_certificates": [],
    "ca_revocation_lists": []
  },
  "webdavd": {
    "bindings": [
      {
        "port": 0,
        "address": "",
        "enable_https": false,
        "certificate_file": "",
        "certificate_key_file": "",
        "min_tls_version": 12,
        "client_auth_type": 0,
        "tls_cipher_suites": [],
        "tls_protocols": [],
        "prefix": "",
        "proxy_mode": 0,
        "proxy_allowed": [],
        "client_ip_proxy_header": "",
        "client_ip_header_depth": 0,
        "disable_www_auth_header": false
      }
    ],
    "certificate_file": "",
    "certificate_key_file": "",
    "ca_certificates": [],
    "ca_revocation_lists": [],
    "cors": {
      "enabled": false,
      "allowed_origins": [],
      "allowed_methods": [],
      "allowed_headers": [],
      "exposed_headers": [],
      "allow_credentials": false,
      "max_age": 0,
      "options_passthrough": false,
      "options_success_status": 0,
      "allow_private_network": false
    },
    "cache": {
      "users": {
        "expiration_time": 0,
        "max_size": 50
      },
      "mime_types": {
        "enabled": true,
        "max_size": 1000,
        "custom_mappings": []
      }
    }
  },
  "data_provider": {
    "driver": "sqlite",
    "name": "/var/lib/sftpgo/sftpgo.db",
    "host": "",
    "port": 0,
    "username": "",
    "password": "",
    "sslmode": 0,
    "disable_sni": false,
    "target_session_attrs": "",
    "root_cert": "",
    "client_cert": "",
    "client_key": "",
    "connection_string": "",
    "sql_tables_prefix": "",
    "track_quota": 2,
    "delayed_quota_update": 0,
    "pool_size": 0,
    "users_base_dir": "/srv/sftpgo/data",
    "actions": {
      "execute_on": [],
      "execute_for": [],
      "hook": ""
    },
    "external_auth_hook": "",
    "external_auth_scope": 0,
    "pre_login_hook": "",
    "post_login_hook": "",
    "post_login_scope": 0,
    "check_password_hook": "",
    "check_password_scope": 0,
    "password_hashing": {
      "bcrypt_options": {
        "cost": 10
      },
      "argon2_options": {
        "memory": 65536,
        "iterations": 1,
        "parallelism": 2
      },
      "algo": "bcrypt"
    },
    "password_validation": {
      "admins": {
        "min_entropy": 0
      },
      "users": {
        "min_entropy": 0
      }
    },
    "password_caching": true,
    "update_mode": 0,
    "create_default_admin": false,
    "naming_rules": 5,
    "is_shared": 0,
    "node": {
      "host": "",
      "port": 0,
      "proto": "http"
    },
    "backups_path": "/srv/sftpgo/backups"
  },
  "httpd": {
    "bindings": [
      {
        "port": 8080,
        "address": "",
        "enable_web_admin": true,
        "enable_web_client": true,
        "enable_rest_api": true,
        "enabled_login_methods": 0,
        "disabled_login_methods": 0,
        "enable_https": false,
        "certificate_file": "",
        "certificate_key_file": "",
        "min_tls_version": 12,
        "client_auth_type": 0,
        "tls_cipher_suites": [],
        "tls_protocols": [],
        "proxy_mode": 0,
        "proxy_allowed": [],
        "client_ip_proxy_header": "",
        "client_ip_header_depth": 0,
        "hide_login_url": 0,
        "render_openapi": true,
        "languages": [
          "en"
        ],
        "oidc": {
          "client_id": "",
          "client_secret": "",
          "client_secret_file": "",
          "config_url": "",
          "redirect_base_url": "",
          "scopes": [
            "openid",
            "profile",
            "email"
          ],
          "username_field": "",
          "role_field": "",
          "implicit_roles": false,
          "custom_fields": [],
          "insecure_skip_signature_check": false,
          "debug": false
        },
        "security": {
          "enabled": false,
          "allowed_hosts": [],
          "allowed_hosts_are_regex": false,
          "hosts_proxy_headers": [],
          "https_redirect": false,
          "https_host": "",
          "https_proxy_headers": [],
          "sts_seconds": 0,
          "sts_include_subdomains": false,
          "sts_preload": false,
          "content_type_nosniff": false,
          "content_security_policy": "",
          "permissions_policy": "",
          "cross_origin_opener_policy": "",
          "cross_origin_resource_policy": "",
          "cross_origin_embedder_policy": "",
          "referrer_policy": "",
          "cache_control": ""
        },
        "branding": {
          "web_admin": {
            "name": "",
            "short_name": "",
            "favicon_path": "",
            "logo_path": "",
            "disclaimer_name": "",
            "disclaimer_path": "",
            "default_css": [],
            "extra_css": []
          },
          "web_client": {
            "name": "",
            "short_name": "",
            "favicon_path": "",
            "logo_path": "",
            "disclaimer_name": "",
            "disclaimer_path": "",
            "default_css": [],
            "extra_css": []
          }
        }
      }
    ],
    "templates_path": "templates",
    "static_files_path": "static",
    "openapi_path": "openapi",
    "web_root": "",
    "certificate_file": "",
    "certificate_key_file": "",
    "ca_certificates": [],
    "ca_revocation_lists": [],
    "signing_passphrase": "",
    "signing_passphrase_file": "",
    "token_validation": 0,
    "cookie_lifetime": 20,
    "share_cookie_lifetime": 120,
    "jwt_lifetime": 20,
    "max_upload_file_size": 0,
    "cors": {
      "enabled": false,
      "allowed_origins": [],
      "allowed_methods": [],
      "allowed_headers": [],
      "exposed_headers": [],
      "allow_credentials": false,
      "max_age": 0,
      "options_passthrough": false,
      "options_success_status": 0,
      "allow_private_network": false
    },
    "setup": {
      "installation_code": "",
      "installation_code_hint": "Installation code"
    },
    "hide_support_link": false
  },
  "telemetry": {
    "bind_port": 0,
    "bind_address": "127.0.0.1",
    "enable_profiler": false,
    "auth_user_file": "",
    "certificate_file": "",
    "certificate_key_file": "",
    "min_tls_version": 12,
    "tls_cipher_suites": [],
    "tls_protocols": []
  },
  "http": {
    "timeout": 20,
    "retry_wait_min": 2,
    "retry_wait_max": 30,
    "retry_max": 3,
    "ca_certificates": [],
    "certificates": [],
    "skip_tls_verify": false,
    "headers": []
  },
  "command": {
    "timeout": 30,
    "env": [],
    "commands": []
  },
  "kms": {
    "secrets": {
      "url": "",
      "master_key": "",
      "master_key_path": ""
    }
  },
  "mfa": {
    "totp": [
      {
        "name": "Default",
        "issuer": "SFTPGo",
        "algo": "sha1"
      }
    ]
  },
  "smtp": {
    "host": "",
    "port": 587,
    "from": "",
    "user": "",
    "password": "",
    "auth_type": 0,
    "encryption": 0,
    "domain": "",
    "templates_path": "templates",
    "debug": 0,
    "oauth2": {
      "provider": 0,
      "tenant": "",
      "client_id": "",
      "client_secret": "",
      "refresh_token": ""
    }
  },
  "plugins": []
}

Relevant log output

{
  "level": "debug",
  "time": "2025-11-17T14:00:59.002",
  "sender": "common",
  "message": "waiting for the update of the transfers current size"
}
{
  "level": "debug",
  "time": "2025-11-17T14:00:59.002",
  "sender": "common",
  "message": "getting overquota transfers"
}
{
  "level": "debug",
  "time": "2025-11-17T14:00:59.002",
  "sender": "common",
  "message": "number of overquota transfers: 0"
}

What are you using SFTPGo for?

Private user, home usecase (home backup/VPS)

Additional info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    invalidThis doesn't seem right

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions