[nexus 3.5] 갑자기 배포본이 업로드가 안된다... 뭐지?

2023. 11. 13. 21:55카테고리 없음

반응형

결론 : 넥서스의 제약조건 설정에서 디스크의 여유공간을 4GB 이상 걸어둔 것때문에 경고가 떠서 발생하였음...

내얼굴에 침뱉기인가...

서론 : Linux에서 curl명령을 이용해 배포본을 nexus저장소에 업로드하려 했다. 갑자기 잘되던 녀석이 아래와 같이 오류가 뿜뿜.... 왜그래... 오류좀 상세히 알려주지.... 500 에러 달랑...흠....

 curl -v --user '???:????' --upload-file ./dist.tar "http://......................../dist.tar"
 
* Trying ..........................
* TCP_NODELAY set
* Connected to ........................... (#0)
* Server auth using Basic with user 'admin'
> PUT ................................/dist.tar HTTP/1.1
> Host: ..............................
> Authorization: Basic ..........................
> User-Agent: curl/7.68.0
> Accept: */*
> Content-Length: 61409280
> Expect: 100-continue
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 100 Continue
* We are completely uploaded and fine
* Mark bundle as not supporting multiuse
< HTTP/1.1 500 Server Error
< Server: Nexus/3.50.0-01 (OSS)
< X-Content-Type-Options: nosniff
< Content-Security-Policy: sandbox allow-forms allow-modals allow-popups allow-presentation allow-scripts allow-top-navigation
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: DENY
< Content-Length: 0

본론 : 개발서버를 접속해서 로그파일(제일 아래 exception참고)까지 뒤졌더니...

4GB이상 남아야 동작한다는군... 최소 4GB는 남겨두는 친굴세...

그기아이고!  니가 4GB 여유공간을 최소 확보해야한다는 제약조건을 지정해서 그런거야!

2023-11-13 18:38:26,016+0900 ERROR [delete-path-15-thread-1]  admin org.sonatype.nexus.repository.maintenance.internal.DeleteFolderServiceImpl - Failed to delete an asset - skipping.
com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing a write operation to database 'component' due to limited free space on the disk (4094 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 4096 MB. Required space is now set to 4096MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit) .
	DB name="component"
	at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkLowDiskSpaceRequestsAndReadOnlyConditions(OAbstractPaginatedStorage.java:5073)
	at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1729)
	at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:541)
	at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:99)
	at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2908)
	at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2870)
	at org.sonatype.nexus.repository.storage.StorageTxImpl.commit(StorageTxImpl.java:196)
	at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.sonatype.nexus.common.stateguard.SimpleMethodInvocation.proceed(SimpleMethodInvocation.java:53)
	at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
	at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:193)
	at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:57)
	at org.sonatype.nexus.common.stateguard.StateGuardAspect$1.invoke(StateGuardAspect.java:66)
	at com.sun.proxy.$Proxy227.commit(Unknown Source)
	at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:69)
	at org.sonatype.nexus.transaction.TransactionInterceptor.proceedWithTransaction(TransactionInterceptor.java:66)
	at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:55)
	at org.sonatype.nexus.repository.storage.DefaultComponentMaintenanceImpl.deleteAsset(DefaultComponentMaintenanceImpl.java:94)
	at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
	at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272)
	at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:54)
	at org.sonatype.nexus.repository.storage.DefaultComponentMaintenanceImpl.deleteAsset(DefaultComponentMaintenanceImpl.java:85)
	at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
	at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272)
	at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:54)
	at org.sonatype.nexus.repository.maintenance.internal.DeleteFolderServiceImpl.deleteAsset(DeleteFolderServiceImpl.java:153)
	at org.sonatype.nexus.repository.maintenance.internal.DeleteFolderServiceImpl.deleteFolder(DeleteFolderServiceImpl.java:117)
	at org.sonatype.nexus.repository.maintenance.internal.MaintenanceServiceImpl.lambda$0(MaintenanceServiceImpl.java:112)
	at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40)
	at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120)
	at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:750)
2023-11-13 18:39:49,742+0900 ERROR [nexus_QuartzSchedulerThread]  *SYSTEM com.orientechnologies.orient.core.storage.impl.local.paginated.OLocalPaginatedStorage - Exception `54E6F9AF` in storage `plocal:C:/nexus-3.50.0-01-win64/sonatype-work/nexus3/db/config`: 2.2.37 (build a7541e7ceeabf592dd9a7b2928b6c023cbc73193, branch 2.2.x)
com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing a write operation to database 'config' due to limited free space on the disk (4094 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 4096 MB. Required space is now set to 4096MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit) .
	DB name="config"
	at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkLowDiskSpaceRequestsAndReadOnlyConditions(OAbstractPaginatedStorage.java:5073)
	at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1729)
	at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:541)
	at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:99)
	at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2908)
	at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2870)
	at org.sonatype.nexus.orient.transaction.OrientTransaction.commit(OrientTransaction.java:74)
	at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:69)
	at org.sonatype.nexus.transaction.Operations.proceedWithTransaction(Operations.java:237)
	at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:228)
	at org.sonatype.nexus.transaction.Operations.call(Operations.java:171)
	at org.sonatype.nexus.orient.transaction.OrientOperations.call(OrientOperations.java:55)
	at org.sonatype.nexus.quartz.internal.orient.JobStoreImpl.acquireNextTriggers(JobStoreImpl.java:947)
	at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:287)
2023-11-13 18:39:49,742+0900 ERROR [nexus_QuartzSchedulerThread]  *SYSTEM com.orientechnologies.orient.core.db.OPartitionedDatabasePool$DatabaseDocumentTxPooled - $ANSI{green {db=config}} Error on transaction commit `54E6F9AF`
com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing a write operation to database 'config' due to limited free space on the disk (4094 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 4096 MB. Required space is now set to 4096MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit) .
	DB name="config"
	at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkLowDiskSpaceRequestsAndReadOnlyConditions(OAbstractPaginatedStorage.java:5073)
	at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1729)
	at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:541)
	at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:99)
	at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2908)
	at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2870)
	at org.sonatype.nexus.orient.transaction.OrientTransaction.commit(OrientTransaction.java:74)
	at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:69)
	at org.sonatype.nexus.transaction.Operations.proceedWithTransaction(Operations.java:237)
	at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:228)
	at org.sonatype.nexus.transaction.Operations.call(Operations.java:171)
	at org.sonatype.nexus.orient.transaction.OrientOperations.call(OrientOperations.java:55)
	at org.sonatype.nexus.quartz.internal.orient.JobStoreImpl.acquireNextTriggers(JobStoreImpl.java:947)
	at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:287)
2023-11-13 18:39:49,742+0900 WARN  [nexus_QuartzSchedulerThread]  *SYSTEM org.sonatype.nexus.quartz.internal.orient.JobStoreImpl - Problem acquiring next triggers
com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing a write operation to database 'config' due to limited free space on the disk (4094 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 4096 MB. Required space is now set to 4096MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit) .
	DB name="config"
	at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkLowDiskSpaceRequestsAndReadOnlyConditions(OAbstractPaginatedStorage.java:5073)
	at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1729)
	at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:541)
	at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:99)
	at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2908)
	at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2870)
	at org.sonatype.nexus.orient.transaction.OrientTransaction.commit(OrientTransaction.java:74)
	at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:69)
	at org.sonatype.nexus.transaction.Operations.proceedWithTransaction(Operations.java:237)
	at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:228)
	at org.sonatype.nexus.transaction.Operations.call(Operations.java:171)
	at org.sonatype.nexus.orient.transaction.OrientOperations.call(OrientOperations.java:55)
	at org.sonatype.nexus.quartz.internal.orient.JobStoreImpl.acquireNextTriggers(JobStoreImpl.java:947)
	at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:287)
2023-11-13 18:39:49,758+0900 ERROR [nexus_QuartzSchedulerThread]  *SYSTEM org.quartz.core.ErrorLogger - An error occurred while scanning for the next triggers to fire.
org.quartz.JobPersistenceException: com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing a write operation to database 'config' due to limited free space on the disk (4094 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 4096 MB. Required space is now set to 4096MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit) .
	DB name="config"
	at org.sonatype.nexus.quartz.internal.orient.JobStoreImpl.acquireNextTriggers(JobStoreImpl.java:957)
	at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:287)
Caused by: com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing a write operation to database 'config' due to limited free space on the disk (4094 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 4096 MB. Required space is now set to 4096MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit) .
	DB name="config"
	at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkLowDiskSpaceRequestsAndReadOnlyConditions(OAbstractPaginatedStorage.java:5073)
	at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1729)
	at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:541)
	at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:99)
	at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2908)
	at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2870)
	at org.sonatype.nexus.orient.transaction.OrientTransaction.commit(OrientTransaction.java:74)
	at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:69)
	at org.sonatype.nexus.transaction.Operations.proceedWithTransaction(Operations.java:237)
	at org.sonatype.nexus.transaction.Operations.transactional(Operations.java:228)
	at org.sonatype.nexus.transaction.Operations.call(Operations.java:171)
	at org.sonatype.nexus.orient.transaction.OrientOperations.call(OrientOperations.java:55)
	at org.sonatype.nexus.quartz.internal.orient.JobStoreImpl.acquireNextTriggers(JobStoreImpl.java:947)
	... 1 common frames omitted

 

그나저나 500 에러 뜰때 그런내용을 response에 담아서 알려줄순 없는거니...


비하인드 스토리 : 

우측과 같이 배포본 쓰레기 녀석들 언제 다지우냐...

귀차나.....

아아아아아아아으으으으으으ㅡ 어어어어어어어

[0ㅐ2쟈보ㅓ3래ㅑㅓㅁㄷ9ㅓㅎ0ㅓ2ㅈ3=0][4소ㅓ90멎ㄷ랴ㅐ어ㅞㅐㅇ먀ㅏㅡㅎ[ㅔ뱌ㅐ3머즈케ㅐㅑ츠ㅁㄴㅇ 퍄ㅓㅠㅜㅁㄷㄱ;ㅣㅏㅇㄶ류ㅡㅍㅋㅁㄴ;ㅣ을'나ㅡㅇ르ㅑㅜ[ㅂ9ㅕ423ㅠㅜㅎ[9ㅕㅗㅜ[내ㅑㅓㅏㄹ0][9ㅓ230ㅂ4ㅑ허무ㅠ[ㅐㅇㄴ'ㅣ르,ㅍㅐ,ㅂㅁ23ㅈ]4ㅏㅓㄷㅅ효ㅔ-09ㅐㅏㅁㅂ3ㅈ4-[게0ㅅ9ㅐㅑㅏ-02ㅏ4ㅓ호-ㅐㅠ]9ㅔㅈ[마ㅡ,';ㅣㄷ<ㅆㄹ
:ㅖ2ㅅㅎ

아쉽게도 디스크레벨에서 폴더 삭제하는 형태로 되어 있지 않음.

참고로 API를 이용해서 하려니 이거원 더 골치하프네;;

하여 일일히..... 다지움! 내시간 돌리도~!

ChatGPT 한테 물어도 이건 어쩔수 없구만...

 

아래는 GhatGPT 답변...

ChatGPT

Nexus Repository에서 컴포넌트를 일괄 삭제하는 방법은 몇 가지가 있습니다. 하드 디스크에서 직접 파일을 삭제하는 방법도 있지만, 이 방법은 Nexus Repository의 데이터베이스와의 동기화 문제를 일으킬 수 있으므로 권장하지 않습니다. 대신, Nexus Repository의 기능을 이용하는 방법을 추천합니다.

  1. Nexus Repository Manager 인터페이스 사용하기:

    • Nexus Repository Manager의 웹 인터페이스를 통해 컴포넌트를 검색하고 삭제할 수 있습니다. 이 방법은 사용하기 쉽지만, 많은 양의 컴포넌트를 일괄적으로 삭제하는 데는 시간이 걸릴 수 있습니다.
  2. REST API를 이용한 삭제:

    • Nexus Repository는 REST API를 제공합니다. 이 API를 사용하여 스크립트를 작성하면 대량의 컴포넌트를 자동으로 삭제할 수 있습니다. API를 사용하면 더 빠르고 효율적으로 컴포넌트를 관리할 수 있습니다.
  3. Groovy 스크립트를 사용한 삭제:

    • Nexus Repository는 Groovy 스크립트를 지원합니다. 이 스크립트를 사용하여 특정 조건에 맞는 컴포넌트를 찾아 일괄 삭제할 수 있습니다. 이 방법은 좀 더 복잡하지만, 매우 강력하고 유연한 해결책을 제공합니다.

직접 파일 시스템에서 컴포넌트를 삭제하는 방법은 권장되지 않으며, 이로 인해 발생하는 데이터베이스 동기화 문제나 다른 문제는 자체적으로 해결해야 할 수도 있습니다. Nexus Repository의 기능을 최대한 활용하는 것이 좋습니다.

 

 

반응형