윈도우의 데이터를 우분투에서 가져와서 처리하는 시스템이 있다.

윈도우 공유를 우분투에서 smb 마운트 하여 사용중이다.(ubuntu 22.04 )

그런데, 며칠(수일~수십일)이 지난 후 우분투가 다운 되는 현상이 발생하였다.

커널 메시지에 다음과 같은 부분이 있다.

kernel: [242843.663373] general protection fault, probably for non-canonical address 0xdead000000000108: 0000 [#1] PREEMPT SMP NOPTI
kernel: [242843.663381] CPU: 4 PID: 1689344 Comm: kworker/4:1 Tainted: G           OE      6.5.0-35-generic #35~22.04.1-Ubuntu
kernel: [242843.663385] Hardware name: ASUS System Product Name/PRIME B760M-A, BIOS 1002 04/03/2023
kernel: [242843.663387] Workqueue: cifsiod smb2_cached_lease_break [cifs]
kernel: [242843.663452] RIP: 0010:smb2_close_cached_fid+0x2a/0xd0 [cifs]


 kernel: [254783.343885] CPU: 2 PID: 1619082 Comm: kworker/2:2 Tainted: G      D    OEL     6.5.0-26-generic #26~22.04.1-Ubuntu
 kernel: [254783.343888] Hardware name: ASUS System Product Name/PRIME B760M-A, BIOS 1002 04/03/2023
 kernel: [254783.343890] Workqueue: cifsiod smb2_reconnect_server [cifs]
 kernel: [254783.343948] RIP: 0010:native_queued_spin_lock_slowpath+0x273/0x300
주요 메시지

Workqueue: cifsiod smb2_cached_lease_break [cifs]
smb2_close_cached_fid

cifsiod smb2_reconnect_server [cifs]

native_queued_spin_lock_slowpath

혹시 부품이상인가 싶어 여러가지 시도를 해봐도 동일(비슷)한 다운 현상이 발생하였다.

사실 그동안 위 메시지를 그냥 넘겼었다.
비슷한 구성의 다른 시스템에서는 나타나지 않은 현상이라, smb 쪽 이슈일까 싶은 생각조차 들지 않았던 것 같다.

이제야 눈에 띄었지만, 실제로 원인인지는 몇가지 설정을 해보면서 찾아봐야 겠다.

smb 의 캐시관련 이슈를 기준으로 찾아봐야 겠다.
캐시가 full 이 되어 중지되는 그런 것일까? 네트웍 접속 지연등의 문제일까?

1차 시도 : 일단 마운트시의 기본값이 cache=strict 인데, cacha=none 으로 해보고 상황을 지켜볼 참이다.

/etc/fstab 예시

//windows/share  /data/  cifs uid=user,gid=user,username=guest,password=,iocharset=utf8,cache=none  0  2

위가 안된다면 2차시도는

echo "0" > /proc/fs/cifs/LookupCacheEnable

3차 시도는 smb 버전 변경 ( 3.0 / 2.0 / 1.0 다른 버전 시도)

현재
vers=3.1.1

시도
vers=1.0

...

잘 해결 되길...

=======

[추가]

1차 시도를 해봤다. 그런데, 전송속도가 캐시가 없으니 너무 떨어진다. (거의 1/5 수준으로)
거의 사용이 어려운 수준.

그러면 2차 시도도 마찬가지로 쓰기 어려울 듯 . 바로 3차 시도로 넘어가야 할 듯 하다.

[추가2]

3차 시도 는 이런 에러?(경고)가.( 상위버전 3.0 / 2.0 부터 시도해볼까?)

CIFS: VFS: Use of the less secure dialect vers=1.0 is not recommended unless required for access to very old servers
반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

플러터로 개발중인데, 안드로이드 스튜디오 jellyfish 로 업그레이드 하면서 몇몇 문제를 해결하고 사용중이다.
뭔가 자잘한 오류 메시지들이 보인다.

이번에는 SDK 매니저 에서 에뮬레이터를 추가하면서 발생한 듯 싶다.

INFO    | Storing crashdata in: /tmp/android-{user-name}/emu-crash-34.2.14.db, detection is enabled for process: 56249

다음 명령 flutter emulators  으로 동일한 메시지를 확인 할 수 있다.

추가했던 에뮬중에 이상이 생긴 듯 하다.

새버전과 호환성 문제일까?

종료하려는데 이런 메시지가?

좀더 살펴보다가, 재부팅 신공(?)을 시도해봐야 겠다.

---

[추가 - 재부팅 신공?]

실패

---

[추가 - 재설치]

아래 주요 디렉토리를 삭제 후에 재설치

  위치 사용자 디렉토리 cd ~/
  
  rm -r .android/
  rm -r Library/Android/
  rm -r Library/Caches/Google/AndroidStudio*
  rm -r Library/Caches/AndroidStudio3.6/
  rm -r Library/Preferences/AndroidStudio3.6/
  rm Library/Preferences/com.android.Emulator.plist 
  rm Library/Preferences/com.google.android.studio.plist

실패

다음에는 하위 버전으로 다시 시도해봐야 겠다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

플러터 를 안드로이드 로 개발중인데 - 새버전이 나와서 업그레이드 하였다.

에러가 생길 것은 예상은 했다. 빌드해보니.

Launching lib/main.dart on sdk gphone64 arm64 in debug mode...
Running Gradle task 'assembleDebug'...

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
> A problem occurred starting process 'command '/..../flutter/bin/flutter''

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2s
Error: Gradle task assembleDebug failed with exit code 1
Error executing devicectl: ProcessException: Process exited abnormally with exit code 3:

User cancelled
  Command: /usr/bin/arch -arm64e xcrun devicectl list devices --timeout 5 --json-output /var/folders/d7/4qd968hd0kzc21y8jggx2qcr0000gn/T/flutter_tools.w7hJCy/core_devices.D5JYTk/core_device_list.json
Error executing devicectl: ProcessException: Process exited abnormally with exit code 3:

User cancelled
  Command: /usr/bin/arch -arm64e xcrun devicectl list devices --timeout 5 --json-output /var/folders/d7/4qd968hd0kzc21y8jggx2qcr0000gn/T/flutter_tools.w7hJCy/core_devices.AHDMpc/core_device_list.json

다음과 같은 에러가 발생하였다.

flutter doctor 해봐도 특별한 이상은 안 보였다.

 


iOS 쪽을 시도 해봤다.

# xcodebuild -downloadPlatform iOS

Downloading iOS 17.5 Simulator (21F79): 83.1% (6.09 GB of 7.34 GB)2024-05-27 00:10:48.511 xcodebuild[38139:36929395]  DVTDownloadable: Download Failed. Downloadable: https://download.developer.apple.com/Developer_Tools/iOS_17.5_Simulator_Runtime/iOS_17.5_Simulator_Runtime.dmg. Error Domain=NSPOSIXErrorDomain Code=28 "No space left on device" UserInfo={NSErrorFailingURLStringKey=https://download.developer.apple.com/Developer_Tools/iOS_17.5_Simulator_Runtime/iOS_17.5_Simulator_Runtime.dmg, NSErrorFailingURLKey=https://download.developer.apple.com/Developer_Tools/iOS_17.5_Simulator_Runtime/iOS_17.5_Simulator_Runtime.dmg, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDownloadTask <D677E7D4-290F-4ABB-AE5D-98AAF40F70BC>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDownloadTask <D677E7D4-290F-4ABB-AE5D-98AAF40F70BC>.<1>}
Downloading iOS 17.5 Simulator (21F79): Error: Error Domain=NSPOSIXErrorDomain Code=28 "No space left on device" UserInfo={NSErrorFailingURLStringKey=https://download.developer.apple.com/Developer_Tools/iOS_17.5_Simulator_Runtime/iOS_17.5_Simulator_Runtime.dmg, NSErrorFailingURLKey=https://download.developer.apple.com/Developer_Tools/iOS_17.5_Simulator_Runtime/iOS_17.5_Simulator_Runtime.dmg, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDownloadTask <D677E7D4-290F-4ABB-AE5D-98AAF40F70BC>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDownloadTask <D677E7D4-290F-4ABB-AE5D-98AAF40F70BC>.<1>}

여기도 에러.

하드 공간이 없다.  오랜만에 봤더니, 6기가 정도 밖에 안 남았네. ㅜㅜ

용량이 부족하다. 조금 정리하고 다시 시도..

Registering simulator runtime with CoreSimulator failed.
Domain: DVTDownloadableErrorDomain
Code: 29
User Info: {
    DVTErrorCreationDateKey = "2024-05-26 15:36:28 +0000";
}
--
Registering simulator runtime with CoreSimulator failed.
Domain: DVTDownloadableErrorDomain
Code: 29
--
Cannot copy the image because the disk is almost full
Domain: com.apple.CoreSimulator.simdiskimaged.SimDiskImageError
Code: 14
--


System Information

macOS Version 14.4.1 (Build 23E224)
Xcode 15.4 (22622) (Build 15F31d)
Timestamp: 2024-05-27T00:36:28+09:00

더 줄여야 겠다.

하드 좀 정리하고, 다시 해보니 정상 다운로드 되었다.
그리고, 안드로이드 스튜디오에서 다시 빌드 해보니 정상 동작 했다.

이제 안드로이드 쪽 빌드를 해결해보자.(즉, iOS 쪽은 정상)

android / gradle 빌드 쪽 이슈로 좁혀졌다.


[다시 시도]

flutter upgrade --force 로 플러터 SDK 를 업그레이드 해봤다.

* What went wrong:
Execution failed for task ':gradle:compileGroovy'.
> Failed to run Gradle Worker Daemon
   > A problem occurred starting process 'Gradle Worker Daemon 1'

에러가 나지만, 메시지가 달라졌다.

android/ 에서 gradle 을 콘솔에서 명령을 내려봤다.

# ./gradlew app:installDebug

FAILURE: Build failed with an exception.

* Where:
Build file '.../android/app/build.gradle' line: 2


What went wrong:
An exception occurred applying plugin request [id: 'com.android.application']
> Failed to apply plugin 'com.android.internal.application'.
   > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
      Your current JDK is located in /Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home/jre
      You can try some of the following options:
       - changing the IDE settings.
       - changing the JAVA_HOME environment variable.
       - changing `org.gradle.java.home` in `gradle.properties`.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 24s
4 actionable tasks: 2 executed, 2 up-to-date

다른 프로젝트에서 1.8 오래된 버전이 필요해서 바꿨었는데, 그것이 영향을 준것 같다.
근데, 안드로이드 스튜디오 젤리피시 버전업 하기까지는 이상이 없었는데..??

android/gradle.properties
파일에 JAVA_HOME 패스를 넣었다.(.bash_profile 등에 넣어도 된다.)

org.gradle.java.home=/Library/Java/JavaVirtualMachines/adoptopenjdk-16.jdk/Contents/Home/

 

다시 빌드...

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':connectivity_plus:compileDebugJavaWithJavac'.
> error: invalid source release: 17

 

이거 점점 미궁으로 가는거 아닌가? ㅜㅜ

java 버전 17 으로 맞춰준다.

# brew install openjdk@17

sudo ln -s  /opt/homebrew/Cellar/openjdk\@17/17.0.11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk

gradle.properties 나 IDE 세팅등에 버전을 맞춘다.

org.gradle.java.home=/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home/

 

일단 여기까지 해보니, 정상 빌드 된다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

플러터 앱을 테스트 하기에 가장 좋은 방법이 뭘까?

apk 파일을 보내서 설치 테스트 하는 것은 뭔가 찜찜하다.

플레이 콘솔에서 공식 지원하는 내부테스트 방법으로 해보고자 한다. (apk 대신 aab - android app bundle ? )

플러터 기본 빌드 기능에서 "Build App Bundle" 이 있어서 해봤다.

플레이 콘솔에서 앱 업로드를 해보니,

디버그 모드로 서명한 APK 또는 Android App Bundle을 업로드했습니다. 
출시 모드로 APK 또는 Android App Bundle에 서명해야 합니다.

위와 같은 메시지. ( 서명 키를 만드는 방법 - https://developer.android.com/studio/publish/app-signing#generate-key )

위 방법중 "Generate Signed Bundle / APK " 플러터 프로젝트에는 메뉴가 없다.

android studio 를 플러터 프로젝트 로 열어서 그렇다.
프로젝트의 android 라는 폴더를 안드로이드 스튜디오에서 File / Open 으로 열면 해당 메뉴가 보인다. (즉, android 프로젝트 로 연다.)

키스토어 관련 정보를 입력하고,

일단 된 듯 하여, 플러터 프로젝트에서 빌드해서 업로드 해봐도 동일한 메시지가 나왔다. 뭔가 키스토어 연결이 안된 듯 하다.
(위 링크중 https://developer.android.com/studio/publish/app-signing#sign-auto 부분을 설정한다.)
요약하자면, singing config 를 만들고 => Build Type 에 해당 config 를 맞추고 =>

최근 안드로이드 스튜디오의 메뉴 위치는 살짝 다르다.

일단 release-test 로 릴리즈 테스트 로 만들었다. (기존 debug 설정에 넣어도 될 듯 함)
- 아! 화면에는 오타가 암튼 중요한 건 아니니 -

Build Variants 에 해당 Signing Config 를 선택해준다.

여기까지 하고, 플러터에서 빌드 => 업로드 . 다시 에러.

테스트 빌드도 세부적인 것을 많이 체크하나보다. 암튼 저것도 맞춰준다.

 

저것까지 맞추고 다시 업로드.

OK 성공.

 

그러나.

.

.

내부 테스트를 위해 할일이 많군. ( 경고 쪽은 안내대로 해주면 OK)

오류 => 계정문제 는 최근에 계정 등록해서 인증이 완료되지 않았다.

위 절차를 해야 한다.

근데, 관련 필요 서류로 할 만한 것이 없다.
오프라인 서류는 당연히 없고, 온라인 서류로 발급 될 만한 것을 찾아봐야 겠다.

=== 일단 될만한 것이 있어 시도 해본다. ===

위 서류 예시에는 없지만, 국세청에서 부가세 우편물에 이름/주소가 있어서 시도해본다.(공공요금 청구서에 해당하려나?)

과연 승인이 떨어질지...

 

[추가+2일]

승인이 되었다. - 영업일 기준 1일 이내에 처리되는 듯 하다(주말이 끼어 있어...)

내부테스터 로 출시 후에 설치 시도를 해보았다.

그런데, 아래 메시지 와 함께 설치가 안된다.

 

개발용 기기에 설치를 하려고 한 듯 해서, 폰에서 설정 > 앱  메뉴에서 해당 앱을 삭제 했다.

그래도 안된다.  "모든 사용자에서 삭제" 로 해야 한다고 하는데, 그 부분 때문일까?

위 현상이 안드로이드 스튜디오에서 Run 할때도 이상현상이 발생한다.

여기서 멈춘다. Install 로 안 넘어간다.

 

[설치 이상 현상 조치]

adb 로 직접 폰에 접속해서 조치 하기로 했다.

무선 디버깅 / USB 기기 연결 등 한 후에

adb shell
으로 접속

pm list packages | grep "패키지 명"

위 명령 하여 패키지 명을 알아낸다.

pm uninstall "전체패키지명"

예시) pm uninstall com.example.myapp


한번에 해도 된다.

adb shell pm uninstall com.example.myapp

위 명령으로 조치 후 - 설치 시도를 해보니 정상 설치 된다.

 

==>

그런데, 실제 앱 테스트 하니, 인터넷 접속이 안되는지, API 서비스 연결이 안되는지 , 정상동작 하지 않는다.
릴리즈 용 권한설정이 빠진것일까?

더 알아봐야 겠다.

 

[추가 - 역시 권한 문제]

디버그 쪽에는 자동으로 들어가 있는데, 릴리즈 시에는 없으니, 인터넷이 꼭 필요한 앱은 넣어줘야 한다.

다시 내부 테스트 릴리즈 해보니 정상 동작 함.

그런데, 개발기기에서는 위 adb shell pm uninstall 을 매번 해줘야 하네. (불편하군)

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

아이폰 무선 디버깅을 해보고 있다.

요약하면

1. 아이폰 맥북/맥미니 등에 연결
2. xcode 실행 => 메뉴 window / devices and simulators (Connect via network 체크)
3. 아이폰 에서 기기 신뢰
4. 아이폰 설정 => 개인정보 보호 및 보안 => 개발자모드 (위 3을 해야 보임)
5. 개발자 모드 끔 => 켬 (재부팅 필요)
6. 다시 xcode 실행 => xcode 에서 연결 확인 (devices 에 지구본 모양?)

 

플러터에서 Run 하면 다음과 같은 메시지

════════════════════════════════════════════════════════════════════════════════
No valid code signing certificates were found
You can connect to your Apple Developer account by signing in with your Apple ID
in Xcode and create an iOS Development Certificate as well as a Provisioning 
Profile for your project by:
  1- Open the Flutter project's Xcode target with
       open ios/Runner.xcworkspace
  2- Select the 'Runner' project in the navigator then the 'Runner' target
     in the project settings
  3- Make sure a 'Development Team' is selected under Signing & Capabilities > Team. 
     You may need to:
         - Log in with your Apple ID in Xcode first
         - Ensure you have a valid unique Bundle ID
         - Register your device with your Apple Developer Account
         - Let Xcode automatically provision a profile for your app
  4- Build or run your project again
  5- Trust your newly created Development Certificate on your iOS device
     via Settings > General > Device Management > [your new certificate] > Trust

For more information, please visit:
  https://developer.apple.com/library/content/documentation/IDEs/Conceptual/
  AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html

Or run on an iOS simulator without code signing
════════════════════════════════════════════════════════════════════════════════
Error: No development certificates available to code sign app for device deployment

맥에서 이렇게 뜨면서 안된다.(앱을 전송하는데, 개발자 인증에 이상이 있는 듯 )

 

아마도 애플 개발자 계정 세팅을 해야 하는 듯 하다.

[일단 개발자 계정 등록 전까지 정리 보류]

 

.
.
.
[Several long days later ...]

개발자 등록/ 팀 등록 을 한 후에 다시 시도해 본다.(플러터 에서 시도)

Could not build the precompiled application for the device.
Error (Xcode): Provisioning profile "iOS Team Provisioning Profile: *" doesn't include the currently selected device "폰-이름" (identifier 폰의ID).
/Users/유저네임/StudioProjects/프로젝트명/ios/Runner.xcodeproj


It appears that there was a problem signing your application prior to installation on the device.

Verify that the Bundle Identifier in your project is your signing id in Xcode
  open ios/Runner.xcworkspace

Also try selecting 'Product > Build' to fix the problem.

Error launching application on 폰-이름.

에러가 안나면 섭하지.

메시지상 폰의 아이디를 등록해줘야 하나보다.

 open ios/Runner.xcworkspace

Xcode 를 열고, Runner 에서 디바이스(폰)를 선택하고, 빌드를 해보면.

빌드하면, 디바이스를 등록하라는 메시지가 나온다.

(나는 2번 나왔는데, 등록을 누른 후) 빌드 실패가 뜬다.

등록 후에 바로 되는게 아닌가 보다.

애플 개발자 계정에 들어가보니.

중간의 기기(영문) 으로 들어간다.

보면, 나의 디바이스(폰)의 이름과 ID 등이 나온다. 등록에 시간이 필요한 듯 하다.
안내에 24~72 시간이라는게 보이는데, 저렇게 오래걸리나?

암튼 좀 지난후에 다시 시도해 본다.

..

[One hours later ..]

비교적 빠르게(?) 해당 Processing 메시지가 없어졌다.
다시 시도...

동일한 메시지가 나온다. 다른 부분이 문제라는 것인가...

애플 개발자 계정에서 profiles 쪽에 등록을 해줬다.(이것 때문인지, 정상 빌드 되고 폰에서 설치되었다)

Xcode 열었을 때 다음 메시지도 나오던데.

정확히 어떤 부분으로 인해 해결(?)이 된 것인지 명확하진 않지만, profiles 쪽 등록이 좀더 가능성이 높아 보인다.

 

[알아본 김에 일단 testFlight 까지]

앱을 폰에 빌드까지 해봤으니, 앱스토어에도 올려보려 한다.

testFlight 로 먼저 올려야 겠지.

xcode 열고 Product / archive 를 실행하면 빌드하고, 업로드 준비를 하는 듯 하다.
archive 창에서 Validate App => Distribute App 을 하면 앱이 Apple Connect 업로드 된다.

testFlight 쪽을 보면, 해당 앱이 등록이 되는데. 다음과 같은 메시지가.
수출관련 인 듯 한데, 일단 모두 해당하지 않음 으로 처리.

ios/Runner/Info.plist

<key>ITSAppUsesNonExemptEncryption</key>
<false/>

일단 위 사항까지 하면, 바로 테스터로 등록한 사용자에게 초대메일이 간다.
초대메일 받아서 testFlight 앱 깔고 초대코드 넣으면 바로 앱 설치 가능하다.(이 부분은 안드로이드 테스트 보다 편한 것 같다)

일단 테스트 앱 배포/테스트 까지 ... (추후 실제 출시하기에 필요한 사항이 있을 듯 하지만. )

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,