• [^] # Re: Validation des liens et bookmarks

    Posté par (site web personnel, Mastodon) . En réponse à l’entrée du suivi Corruption de dépêches et URL avec des caractères non ascii. Évalué à 2 (+0/-0).

    Ce que je ne sais pas, c'est si le modèle de link est appelé au moment de faire self.attributes = params ou au moment de faire save.

    Je viens de reproduire, c'est sur la ligne self.attributes = params que ça se déclenche.

    Voilà le déroulement dans le log et, malheureusement, il n'y a pas de transaction sql :(

    linuxfr.org_1 | Started PUT "/redaction/news/voici-venu-le-temps-des-cathedrales-libres/reorganized" for 172.18.0.8 at 2021年05月31日 20:40:47 +0000
    linuxfr.org_1 | Cannot render console from 172.18.0.1! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
    linuxfr.org_1 | Processing by Redaction::NewsController#reorganized as HTML
    linuxfr.org_1 | Parameters: {"utf8"=>"✓", "authenticity_token"=>"kyLbHIusFEDZj_GEvZ1sLB_TOSzrTEwdGZ8Qhsy_QZaIlVR0WSyffU4MgkyUtaC2ILXnG_5KThMFKUrWu6mgug", "news"=>{"section_id"=>"1", "title"=>"Voici venu le temps des cathédrales libres test", "wiki_body"=>"test chapeau :)\r\n\r\ntest\r\nt\r\n\r\n\r\ntest2222", "links_attributes"=>{"0"=>{"title"=>"http://localhost", "url"=>"http://localhost", "lang"=>"fr", "id"=>"9"}, "1"=>{"title"=>"http://localhost", "url"=>"http://localhost/ééééééééééééé", "lang"=>"fr", "id"=>"10"}, "2"=>{"title"=>"http://localhost", "url"=>"http://localhost/ééééééééééééé", "lang"=>"fr", "id"=>"11"}}, "wiki_second_part"=>"Un sommaire sera automatiquement créé si nécessaire. Pensez à l'orthographe et aux liens explicatifs vers Wikipedia. (Vous pouvez éditer ce paragraphe en cliquant sur le crayon !)\r\n\r\ntest\r\n\r\n\r\nCe paragraphe est chou :) test\r\n\r\n\r\n\r\nVous pouvez éditer ce paragraphe en cliquant sur le crayon ! http://localhost/ééééééé test\r\n\r\n\r\nVous pouvez éditer ce paragraphe en cliquant sur le crayon ! test"}, "commit"=>"OK", "id"=>"voici-venu-le-temps-des-cathedrales-libres"}
    linuxfr.org_1 | Account Load (0.4ms) SELECT `accounts`.* FROM `accounts` WHERE `accounts`.`id` = 4 ORDER BY `accounts`.`id` ASC LIMIT 1
    linuxfr.org_1 | News Load (0.2ms) SELECT `news`.* FROM `news` WHERE `news`.`cached_slug` = 'voici-venu-le-temps-des-cathedrales-libres' LIMIT 1
    linuxfr.org_1 | Paragraph Destroy (4.3ms) DELETE FROM `paragraphs` WHERE `paragraphs`.`news_id` = 4
    linuxfr.org_1 | Link Load (0.6ms) SELECT `links`.* FROM `links` WHERE `links`.`news_id` = 4 AND `links`.`id` IN (9, 10, 11)
    linuxfr.org_1 | Completed 500 Internal Server Error in 15ms (ActiveRecord: 5.5ms)
    linuxfr.org_1 | 
    linuxfr.org_1 | 
    linuxfr.org_1 | 
    linuxfr.org_1 | URI::InvalidURIError (URI must be ascii only "http://localhost/\u{e9}\u{e9}\u{e9}\u{e9}\u{e9}\u{e9}\u{e9}\u{e9}\u{e9}\u{e9}\u{e9}\u{e9}\u{e9}"):
    linuxfr.org_1 | 
    linuxfr.org_1 | /usr/lib/ruby/2.3.0/uri/rfc3986_parser.rb:21:in `split'
    linuxfr.org_1 | /usr/lib/ruby/2.3.0/uri/rfc3986_parser.rb:73:in `parse'
    linuxfr.org_1 | /usr/lib/ruby/2.3.0/uri/common.rb:227:in `parse'
    linuxfr.org_1 | app/models/link.rb:36:in `url='
    linuxfr.org_1 | activemodel (5.2.5) lib/active_model/attribute_assignment.rb:51:in `public_send'
    linuxfr.org_1 | activemodel (5.2.5) lib/active_model/attribute_assignment.rb:51:in `_assign_attribute'
    linuxfr.org_1 | activemodel (5.2.5) lib/active_model/attribute_assignment.rb:44:in `block in _assign_attributes'
    linuxfr.org_1 | activemodel (5.2.5) lib/active_model/attribute_assignment.rb:43:in `each'
    linuxfr.org_1 | activemodel (5.2.5) lib/active_model/attribute_assignment.rb:43:in `_assign_attributes'
    linuxfr.org_1 | activerecord (5.2.5) lib/active_record/attribute_assignment.rb:23:in `_assign_attributes'
    linuxfr.org_1 | activemodel (5.2.5) lib/active_model/attribute_assignment.rb:35:in `assign_attributes'
    linuxfr.org_1 | activerecord (5.2.5) lib/active_record/nested_attributes.rb:553:in `assign_to_or_mark_for_destruction'
    linuxfr.org_1 | activerecord (5.2.5) lib/active_record/nested_attributes.rb:518:in `block in assign_nested_attributes_for_collection_association'
    linuxfr.org_1 | activerecord (5.2.5) lib/active_record/nested_attributes.rb:496:in `each'
    linuxfr.org_1 | activerecord (5.2.5) lib/active_record/nested_attributes.rb:496:in `assign_nested_attributes_for_collection_association'
    linuxfr.org_1 | activerecord (5.2.5) lib/active_record/nested_attributes.rb:373:in `links_attributes='
    linuxfr.org_1 | activemodel (5.2.5) lib/active_model/attribute_assignment.rb:51:in `public_send'
    linuxfr.org_1 | activemodel (5.2.5) lib/active_model/attribute_assignment.rb:51:in `_assign_attribute'
    linuxfr.org_1 | activerecord (5.2.5) lib/active_record/attribute_assignment.rb:31:in `block in assign_nested_parameter_attributes'
    linuxfr.org_1 | activerecord (5.2.5) lib/active_record/attribute_assignment.rb:31:in `each'
    linuxfr.org_1 | activerecord (5.2.5) lib/active_record/attribute_assignment.rb:31:in `assign_nested_parameter_attributes'
    linuxfr.org_1 | activerecord (5.2.5) lib/active_record/attribute_assignment.rb:25:in `_assign_attributes'
    linuxfr.org_1 | activemodel (5.2.5) lib/active_model/attribute_assignment.rb:35:in `assign_attributes'
    linuxfr.org_1 | app/models/news.rb:264:in `reorganize'
    linuxfr.org_1 | app/controllers/redaction/news_controller.rb:68:in `reorganized'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
    linuxfr.org_1 | actionpack (5.2.5) lib/abstract_controller/base.rb:194:in `process_action'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_controller/metal/rendering.rb:30:in `process_action'
    linuxfr.org_1 | actionpack (5.2.5) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
    linuxfr.org_1 | activesupport (5.2.5) lib/active_support/callbacks.rb:132:in `run_callbacks'
    linuxfr.org_1 | actionpack (5.2.5) lib/abstract_controller/callbacks.rb:41:in `process_action'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_controller/metal/rescue.rb:22:in `process_action'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
    linuxfr.org_1 | activesupport (5.2.5) lib/active_support/notifications.rb:168:in `block in instrument'
    linuxfr.org_1 | activesupport (5.2.5) lib/active_support/notifications/instrumenter.rb:23:in `instrument'
    linuxfr.org_1 | activesupport (5.2.5) lib/active_support/notifications.rb:168:in `instrument'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_controller/metal/instrumentation.rb:32:in `process_action'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_controller/metal/params_wrapper.rb:256:in `process_action'
    linuxfr.org_1 | activerecord (5.2.5) lib/active_record/railties/controller_runtime.rb:24:in `process_action'
    linuxfr.org_1 | actionpack (5.2.5) lib/abstract_controller/base.rb:134:in `process'
    linuxfr.org_1 | actionview (5.2.5) lib/action_view/rendering.rb:32:in `process'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_controller/metal.rb:191:in `dispatch'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_controller/metal.rb:252:in `dispatch'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/routing/route_set.rb:52:in `dispatch'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/routing/route_set.rb:34:in `serve'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/journey/router.rb:52:in `block in serve'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/journey/router.rb:35:in `each'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/journey/router.rb:35:in `serve'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/routing/route_set.rb:840:in `call'
    linuxfr.org_1 | warden (1.2.8) lib/warden/manager.rb:36:in `block in call'
    linuxfr.org_1 | warden (1.2.8) lib/warden/manager.rb:34:in `catch'
    linuxfr.org_1 | warden (1.2.8) lib/warden/manager.rb:34:in `call'
    linuxfr.org_1 | rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'
    linuxfr.org_1 | rack (2.2.3) lib/rack/etag.rb:27:in `call'
    linuxfr.org_1 | rack (2.2.3) lib/rack/conditional_get.rb:40:in `call'
    linuxfr.org_1 | rack (2.2.3) lib/rack/head.rb:12:in `call'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/http/content_security_policy.rb:18:in `call'
    linuxfr.org_1 | rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'
    linuxfr.org_1 | rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/middleware/cookies.rb:670:in `call'
    linuxfr.org_1 | activerecord (5.2.5) lib/active_record/migration.rb:559:in `call'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
    linuxfr.org_1 | activesupport (5.2.5) lib/active_support/callbacks.rb:98:in `run_callbacks'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/middleware/executor.rb:14:in `call'
    linuxfr.org_1 | better_errors (2.5.0) lib/better_errors/middleware.rb:59:in `call'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call'
    linuxfr.org_1 | web-console (3.6.2) lib/web_console/middleware.rb:135:in `call_app'
    linuxfr.org_1 | web-console (3.6.2) lib/web_console/middleware.rb:22:in `block in call'
    linuxfr.org_1 | web-console (3.6.2) lib/web_console/middleware.rb:20:in `catch'
    linuxfr.org_1 | web-console (3.6.2) lib/web_console/middleware.rb:20:in `call'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
    linuxfr.org_1 | railties (5.2.5) lib/rails/rack/logger.rb:38:in `call_app'
    linuxfr.org_1 | railties (5.2.5) lib/rails/rack/logger.rb:26:in `block in call'
    linuxfr.org_1 | activesupport (5.2.5) lib/active_support/tagged_logging.rb:71:in `block in tagged'
    linuxfr.org_1 | activesupport (5.2.5) lib/active_support/tagged_logging.rb:28:in `tagged'
    linuxfr.org_1 | activesupport (5.2.5) lib/active_support/tagged_logging.rb:71:in `tagged'
    linuxfr.org_1 | railties (5.2.5) lib/rails/rack/logger.rb:26:in `call'
    linuxfr.org_1 | sprockets-rails (3.2.2) lib/sprockets/rails/quiet_assets.rb:13:in `call'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/middleware/request_id.rb:27:in `call'
    linuxfr.org_1 | rack (2.2.3) lib/rack/method_override.rb:24:in `call'
    linuxfr.org_1 | rack (2.2.3) lib/rack/runtime.rb:22:in `call'
    linuxfr.org_1 | activesupport (5.2.5) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/middleware/executor.rb:14:in `call'
    linuxfr.org_1 | actionpack (5.2.5) lib/action_dispatch/middleware/static.rb:127:in `call'
    linuxfr.org_1 | rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
    linuxfr.org_1 | railties (5.2.5) lib/rails/engine.rb:524:in `call'
    linuxfr.org_1 | thin (1.7.2) lib/thin/connection.rb:86:in `block in pre_process'
    linuxfr.org_1 | thin (1.7.2) lib/thin/connection.rb:84:in `catch'
    linuxfr.org_1 | thin (1.7.2) lib/thin/connection.rb:84:in `pre_process'
    linuxfr.org_1 | thin (1.7.2) lib/thin/connection.rb:53:in `process'
    linuxfr.org_1 | thin (1.7.2) lib/thin/connection.rb:39:in `receive_data'
    linuxfr.org_1 | eventmachine (1.2.7) lib/eventmachine.rb:195:in `run_machine'
    linuxfr.org_1 | eventmachine (1.2.7) lib/eventmachine.rb:195:in `run'
    linuxfr.org_1 | thin (1.7.2) lib/thin/backends/base.rb:73:in `start'
    linuxfr.org_1 | thin (1.7.2) lib/thin/server.rb:162:in `start'
    linuxfr.org_1 | rack (2.2.3) lib/rack/handler/thin.rb:22:in `run'
    linuxfr.org_1 | rack (2.2.3) lib/rack/server.rb:327:in `start'
    linuxfr.org_1 | railties (5.2.5) lib/rails/commands/server/server_command.rb:53:in `start'
    linuxfr.org_1 | railties (5.2.5) lib/rails/commands/server/server_command.rb:147:in `block in perform'
    linuxfr.org_1 | railties (5.2.5) lib/rails/commands/server/server_command.rb:142:in `tap'
    linuxfr.org_1 | railties (5.2.5) lib/rails/commands/server/server_command.rb:142:in `perform'
    linuxfr.org_1 | thor (1.0.1) lib/thor/command.rb:27:in `run'
    linuxfr.org_1 | thor (1.0.1) lib/thor/invocation.rb:127:in `invoke_command'
    linuxfr.org_1 | thor (1.0.1) lib/thor.rb:392:in `dispatch'
    linuxfr.org_1 | railties (5.2.5) lib/rails/command/base.rb:69:in `perform'
    linuxfr.org_1 | railties (5.2.5) lib/rails/command.rb:46:in `invoke'
    linuxfr.org_1 | railties (5.2.5) lib/rails/commands.rb:18:in `<main>'
    linuxfr.org_1 | bootsnap (1.4.6) lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
    linuxfr.org_1 | bootsnap (1.4.6) lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
    linuxfr.org_1 | bootsnap (1.4.6) lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
    linuxfr.org_1 | bootsnap (1.4.6) lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
    linuxfr.org_1 | bootsnap (1.4.6) lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
    linuxfr.org_1 | activesupport (5.2.5) lib/active_support/dependencies.rb:291:in `block in require'
    linuxfr.org_1 | activesupport (5.2.5) lib/active_support/dependencies.rb:257:in `load_dependency'
    linuxfr.org_1 | activesupport (5.2.5) lib/active_support/dependencies.rb:291:in `require'
    linuxfr.org_1 | bin/rails:4:in `<main>'
    nginx_1 | 172.18.0.1 - - [31/May/2021:20:40:47 +0000] "POST /redaction/news/voici-venu-le-temps-des-cathedrales-libres/reorganized HTTP/1.1" 500 143305 "http://dlfp.lo/redaction/news/voici-venu-le-temps-des-cathedrales-libres/reorganize" "Mozilla/5.0 (X11; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" "-"