chrispanag
(Christos Panagiotakopoulos)
1
이 토픽의 첫 번째 게시글을 수정하려고 하면 HTTP 500 오류 코드가 반환됩니다. 오류 로그에는 다음과 같은 치명적 오류가 보고되고 있습니다:
Message (7 copies reported)
PG::StringDataRightTruncation (ERROR: value too long for type character varying(500)
)
app/models/topic_link.rb:240:in `safe_create_topic_link'
app/models/topic_link.rb:334:in `ensure_entry_for'
app/models/topic_link.rb:128:in `block (2 levels) in extract_from'
app/models/topic_link.rb:126:in `block in extract_from'
app/models/topic_link.rb:124:in `each'
app/models/topic_link.rb:124:in `extract_from'
lib/post_revisor.rb:224:in `revise!'
app/controllers/topics_controller.rb:379:in `update'
app/controllers/application_controller.rb:358:in `block in with_resolved_locale'
app/controllers/application_controller.rb:358:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:355:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:177:in `call'
Backtrace
rack-mini-profiler (2.3.1) lib/patches/db/pg.rb:113:in `exec'
rack-mini-profiler (2.3.1) lib/patches/db/pg.rb:113:in `async_exec'
mini_sql (1.0.1) lib/mini_sql/postgres/connection.rb:201:in `run'
mini_sql (1.0.1) lib/mini_sql/postgres/connection.rb:56:in `query_single'
app/models/topic_link.rb:240:in `safe_create_topic_link'
app/models/topic_link.rb:334:in `ensure_entry_for'
app/models/topic_link.rb:128:in `block (2 levels) in extract_from'
activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `block in transaction'
activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'
activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
Env
HTTP HOSTS: rembetiko.gr
2개의 좋아요
sam
(Sam Saffron)
2
URL과 관련된 문제인 것 같습니다. 길이가 500자를 초과하네요.
500 에러가 발생하는 대신 잘라내거나 건너뛰는 처리를 해야 합니다.
해당 게시물에서 가장 긴 URL은 무엇인가요?
4개의 좋아요
chrispanag
(Christos Panagiotakopoulos)
3
감사합니다 @sam,
해당 게시물에 있는 유일한 URL은 인용문에서 가져온 것입니다. 실제 URL은 다음과 같습니다:
https://rembetiko.gr/t/%CE%BC%CE%B1%CE%BA%CE%AC%CE%BC-%CE%B2%CF%85%CE%B6%CE%B1%CE%BD%CF%84%CE%B9%CE%BD%CE%BF%CE%AF-%CE%B4%CF%81%CF%8C%CE%BC%CE%BF%CE%B9/6034/30
2개의 좋아요
sam
(Sam Saffron)
4
그건 문자가 159개뿐인데… 여기서 무슨 일이 일어나는지 한번 보겠습니다:
Μακάμ - Βυζαντινοί Δρόμοι - #30 από kwstas_ferris - Παραδοσιακή μουσική - Ρεμπέτικο Φόρουμ
이상하네요… 해당 URL로는 재현이 안 됩니다.
아마 첫 번째 게시글이라는 점과 관련이 있는 건지 모르겠네요.
2개의 좋아요
chrispanag
(Christos Panagiotakopoulos)
5
이것은 주제의 제목과 관련이 있습니다. 제목을 더 짧은 것으로 수정했을 때 오류가 사라졌습니다. 원래 길이의 제목으로 되돌리려 했을 때, 제목을 업데이트하는 동안 500 오류가 표시되었습니다. 500 오류가 발생한 후 새로고침을 했더니 제목이 업데이트되어 있었습니다.
3개의 좋아요
chrispanag
(Christos Panagiotakopoulos)
6
조금 더 조사해 보니:
이 문제는 “연결된” 게시글(인용된 게시글)을 업데이트하여 인용 링크를 포함할 때 발생합니다. 긴 제목 때문에 링크가 500자를 초과하게 되어 이 문제가 발생합니다.
제목이 매우 긴 경우, 연결된 게시글의 실제 링크는 업데이트되지 않습니다.
4개의 좋아요
sam
(Sam Saffron)
7
@Osama 코어에서 더 관대하게 잘리는(truncation) 방식을 조사하는 내용을 목록에 추가해 주실 수 있나요? 가능하면 테스트 케이스로 재현해 주시면 좋겠습니다.
물론 긴급하지 않으니, 시간이 나실 때 해주시면 됩니다.
3개의 좋아요
chrispanag
(Christos Panagiotakopoulos)
8
죄송하지만 이 스레드를 다시 올리는 건데, 이 버그가 해결되었나요? 오늘 우리 포럼에서 두 번째로 같은 문제가 발생했습니다…
수고 많으셨습니다! 
1개의 좋아요
sam
(Sam Saffron)
9
죄송하지만 요즘 좀 바빠서 @Osama의 목록에 올려두었습니다. 앞으로 4주 안에 처리할 수 있기를 바랍니다.
4개의 좋아요
andrei
(Andrei Prigorshnev)
14
@chrispanag 문제는 이제 해결되었습니다:
말씀하신 대로, 원본 게시물의 제목이 길 경우 링크된 게시물에서 원본 게시물로 역링크를 생성할 때 오류가 발생하고 있었습니다.
3개의 좋아요
sam
(Sam Saffron)
에 닫힘
16
이 주제는 2일 후 자동으로 닫혔습니다. 더 이상 새 답변을 작성할 수 없습니다.