what-is-quality / aws-codedeploy-agent

Host Agent for AWS CodeDeploy
https://aws.amazon.com/codedeploy
Apache License 2.0
2 stars 0 forks source link

오픈소스 스터디 2차 이슈 주제 선정하기 - 리스트업 #6

Open americanomin opened 5 years ago

americanomin commented 5 years ago

Symlink 관련 버그

--file-exists-behavior "OVERWRITE" 옵션을 사용하고 있는데, 파일이 Symlink인 경우 오류가 나는 현상 #143

참고 링크

https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/deployments-local.html

코드 위치

installer.py >> generate_normal_copy

        private
        def generate_normal_copy(i, absolute_source_path, destination)
          if File.exists?(destination)
            case @file_exists_behavior
            when "DISALLOW"
              raise "The deployment failed because a specified file already exists at this location: #{destination}"
            when "OVERWRITE"
              i.copy(absolute_source_path, destination)
            when "RETAIN"
              # neither generate copy command or fail the deployment
            else
              raise "The deployment failed because an invalid option was specified for fileExistsBehavior: #{@file_exists_behavior}. Valid options include OVERWRITE, RETAIN, and DISALLOW."
            end
          else
            i.copy(absolute_source_path, destination)
          end
        end
      class CopyCommand
        attr_reader :destination, :source
        def initialize(source, destination)
          @source = source
          @destination = destination
        end

        def execute(cleanup_file)
          # NO need to check if file already exists in here, because if that's the case,
          # the CopyCommand entry should not even be created by Installer
          cleanup_file.puts(@destination)
          if File.symlink?(@source)
            FileUtils.symlink(File.readlink(@source), @destination)
          else
            FileUtils.copy(@source, @destination, :preserve => true)
          end
        end

        def to_h
          {:type => :copy, :source => @source, :destination => @destination}
        end
      end
wonderer80 commented 5 years ago

aws-sdk-core 버전 의존성 문제

#133 은 최근에 경험한 문제로 시스템에 설치된 aws-sdk-core 의 버전이 최신 버전으로 깔려 있으면 agent 가 제대로 실행되지 않는 문제였다.

자세히는 모르겠지만 #60 도 같은 문제이지 않을까 추정해본다.

선정 이유는 ruby 환경에서 배포할 때 꽤 치명적인 결함이라고 생각되고 해당 이슈에 많은 사람들이 커멘트를 달정도로 관심이 많은 이슈이기 때문이다.

wonderer80 commented 5 years ago

Two deployments in the same directory: the second one fails

#185 왠지 이전에 해결한 문제와 유사성이 있을 것 같다.

wonderer80 commented 5 years ago

Add Support for "Overwrite" instruction in appspec.yml "Files" section

#14 오래된 이슈이고 댓글이 엄청 많은데 해결이 안됨. 기능이 지원되길 원하는 사람들이 매우 많은 것 같다. 근데 뭔가 안에서 싸우는 것 같은데 뭔소린지 잘 모르겠음.ㅋㅋㅋ