Gunman's death in mass shooting at Northern California food festival ruled suicide

Gunman's death in mass shooting at Northern California food festival ruled suicide
FILE PHOTO: A painting by Gilroy resident Ignacio "Nacho" Moya on the stage at a vigil for those who died and were injured at the mass shooting at the Gilroy Garlic Festival a day earlier, in Gilroy, California, U.S. July 29, 2019. REUTERS/Kate Munsch
By Reuters
Published: August 03, 2019 08:54 AM

LOS ANGELES, Aug 3: The teenager who opened fire with an assault rifle at a weekend food festival in Northern California, killing three people, died from a self-inflicted gunshot wound to the head, autopsy results announced on Friday found.

Police had originally asserted that the gunman, Santino William Legan, 19, was shot dead by police officers who were on patrol at Sunday’s Gilroy Garlic Festival and confronted Legan when he began his rampage.

Gilroy Police Chief Scot Smithee insisted the three officers who exchanged fire with Legan were still heroes, saying the casualty toll would likely have been higher had they not engaged the gunman as quickly as they did, within seconds after he began shooting.

“In my mind, it changes nothing,” Smithee said of the preliminary autopsy results. “The officers still got there fast, they engaged him fast, they drew his fire and they eliminated the threat.”

Speaking to reporters on Friday, Smithee said the suspect turned his gunfire from the crowd to the officers as they reached him, and he was struck by “several” shots returned by the police, none of whom was wounded in the exchange.

The gunman initially fell to his knees, then to the ground. But he managed at some point to squeeze off a final round from his gun into his own head, Smithee said.

The autopsy showed specifically that Legan died from a self-inflicted gunshot fired into his mouth, said Cindy Gallego, a spokeswoman for the Santa Clara County coroner’s office.

The chief said his understanding was that his officers had not realized at the time that the suspect shot himself.

The precise number of rounds fired by police and the number striking the suspect would be detailed in a full autopsy report, to be made public later, along with toxicology tests, Smithee added.

Three people attending the festival were killed, including a 6-year-old boy and 13-year-old girl, and a dozen others were injured, some seriously.

The violence erupted near the end of an annual decades-old event celebrating produce farmed in the countryside of California’s Santa Clara Valley, about 30 miles (48 km) southeast of Silicon Valley.

Police said the gunman opened fire with an “AK47-variant” of an assault-style rifle, which he had purchased legally in Nevada. A shotgun also purchased in Nevada was later found in his car.

Police and FBI investigators believe Legan acted alone but have yet to determine his motive.

Request history8.2.19PHP Version6.66sRequest Duration6MBMemory UsageGET amp/news/{slug}Route
    • Booting (13.47ms)time
    • Application (6.65s)time
    • 1 x Application (99.8%)
      6.65s
      1 x Booting (0.2%)
      13.47ms
      1 templates were rendered
      • frontend.amp-detailamp-detail.blade.php#?blade
      uri
      GET amp/news/{slug}
      middleware
      web, mynews, kyc
      controller
      App\Http\Controllers\Frontend\News\NewsController@getBySlug
      namespace
      prefix
      where
      as
      news.slug
      file
      app/Http/Controllers/Frontend/News/NewsController.php:276-373
      10 statements were executed6.6s
      • NewsController.php#297republica1405msselect `id`, `title`, `content`, `excerpt`, `permalink`, `pub_date`, `is_subscriber_only`, `is_subscriber_user`, `is_free`, `is_logged_in_user`, `content`, `caption`, `news_slug`, `exclusive_news` from `news` where `permalink` = 'gunman-s-death-in-mass-shooting-at-northern-california-food-festival-ruled-suicide' and `status` = 1 limit 1
        Bindings
        • 0: gunman-s-death-in-mass-shooting-at-northern-california-food-festival-ruled-suicide
        • 1: 1
        Backtrace
        • app/Http/Controllers/Frontend/News/NewsController.php:297
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:426
        • app/Http/Controllers/Frontend/News/NewsController.php:291
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
      • NewsController.php#297republica1740μsselect `attachments`.`id`, `directory`, `file`, `news_has_attachments`.`news_id` as `pivot_news_id`, `news_has_attachments`.`attachment_id` as `pivot_attachment_id`, `news_has_attachments`.`created_at` as `pivot_created_at`, `news_has_attachments`.`updated_at` as `pivot_updated_at` from `attachments` inner join `news_has_attachments` on `attachments`.`id` = `news_has_attachments`.`attachment_id` where `news_has_attachments`.`is_featured_image` = '0' and `news_has_attachments`.`news_id` in (71207)
        Bindings
        • 0: 0
        Backtrace
        • app/Http/Controllers/Frontend/News/NewsController.php:297
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:426
        • app/Http/Controllers/Frontend/News/NewsController.php:291
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
      • NewsController.php#297republica1510μsselect `categories`.`id`, `name`, `news_has_categories`.`news_id` as `pivot_news_id`, `news_has_categories`.`category_id` as `pivot_category_id`, `news_has_categories`.`created_at` as `pivot_created_at`, `news_has_categories`.`updated_at` as `pivot_updated_at` from `categories` inner join `news_has_categories` on `categories`.`id` = `news_has_categories`.`category_id` where `news_has_categories`.`news_id` in (71207)
        Backtrace
        • app/Http/Controllers/Frontend/News/NewsController.php:297
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:426
        • app/Http/Controllers/Frontend/News/NewsController.php:291
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
      • NewsController.php#297republica1550μsselect `attachments`.`id`, `directory`, `file`, `news_has_attachments`.`news_id` as `pivot_news_id`, `news_has_attachments`.`attachment_id` as `pivot_attachment_id`, `news_has_attachments`.`created_at` as `pivot_created_at`, `news_has_attachments`.`updated_at` as `pivot_updated_at` from `attachments` inner join `news_has_attachments` on `attachments`.`id` = `news_has_attachments`.`attachment_id` where `news_has_attachments`.`is_featured_image` = '1' and `news_has_attachments`.`news_id` in (71207)
        Bindings
        • 0: 1
        Backtrace
        • app/Http/Controllers/Frontend/News/NewsController.php:297
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:426
        • app/Http/Controllers/Frontend/News/NewsController.php:291
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
      • NewsController.php#297republica1550μsselect `authors`.`id`, `name`, `avatar`, `news_has_authors`.`news_id` as `pivot_news_id`, `news_has_authors`.`author_id` as `pivot_author_id`, `news_has_authors`.`created_at` as `pivot_created_at`, `news_has_authors`.`updated_at` as `pivot_updated_at` from `authors` inner join `news_has_authors` on `authors`.`id` = `news_has_authors`.`author_id` where `news_has_authors`.`news_id` in (71207)
        Backtrace
        • app/Http/Controllers/Frontend/News/NewsController.php:297
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:426
        • app/Http/Controllers/Frontend/News/NewsController.php:291
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
      • NewsController.php#388republica13.69sselect `id`, `title`, `excerpt`, `permalink`, `pub_date`, `is_subscriber_only`, MATCH(title, excerpt) AGAINST ('Gunmans death in mass shooting at Northern California food festival ruled suicide' IN BOOLEAN MODE) as score from `news` where `id` != 71207 and `status` = 1 order by `score` desc, `pub_date` desc limit 6
        Bindings
        • 0: 71207
        • 1: 1
        Backtrace
        • app/Http/Controllers/Frontend/News/NewsController.php:388
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:426
        • app/Http/Controllers/Frontend/News/NewsController.php:380
        • app/Http/Controllers/Frontend/News/NewsController.php:306
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
      • NewsController.php#388republica1860μsselect `attachments`.`id`, `directory`, `file`, `news_has_attachments`.`news_id` as `pivot_news_id`, `news_has_attachments`.`attachment_id` as `pivot_attachment_id`, `news_has_attachments`.`created_at` as `pivot_created_at`, `news_has_attachments`.`updated_at` as `pivot_updated_at` from `attachments` inner join `news_has_attachments` on `attachments`.`id` = `news_has_attachments`.`attachment_id` where `news_has_attachments`.`is_featured_image` = '0' and `news_has_attachments`.`news_id` in (70802, 71185, 79593, 132773, 149078, 150482)
        Bindings
        • 0: 0
        Backtrace
        • app/Http/Controllers/Frontend/News/NewsController.php:388
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:426
        • app/Http/Controllers/Frontend/News/NewsController.php:380
        • app/Http/Controllers/Frontend/News/NewsController.php:306
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
      • NewsController.php#388republica1560μsselect `attachments`.`id`, `directory`, `file`, `news_has_attachments`.`news_id` as `pivot_news_id`, `news_has_attachments`.`attachment_id` as `pivot_attachment_id`, `news_has_attachments`.`created_at` as `pivot_created_at`, `news_has_attachments`.`updated_at` as `pivot_updated_at` from `attachments` inner join `news_has_attachments` on `attachments`.`id` = `news_has_attachments`.`attachment_id` where `news_has_attachments`.`is_featured_image` = '1' and `news_has_attachments`.`news_id` in (70802, 71185, 79593, 132773, 149078, 150482)
        Bindings
        • 0: 1
        Backtrace
        • app/Http/Controllers/Frontend/News/NewsController.php:388
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:426
        • app/Http/Controllers/Frontend/News/NewsController.php:380
        • app/Http/Controllers/Frontend/News/NewsController.php:306
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
      • NewsController.php#416republica1680μsselect `id`, `title`, `excerpt`, `permalink`, `pub_date`, `is_subscriber_only`, `read_time`, `news_slug` from `news` where `pub_date` between '2025-04-27 17:06:20' and '2025-04-28 17:06:20' and `id` not in (71207) and `status` = 1 order by `view_count` desc limit 3
        Bindings
        • 0: 2025-04-27 17:06:20
        • 1: 2025-04-28 17:06:20
        • 2: 71207
        • 3: 1
        Backtrace
        • app/Http/Controllers/Frontend/News/NewsController.php:416
        • vendor/laravel/framework/src/Illuminate/Cache/Repository.php:426
        • app/Http/Controllers/Frontend/News/NewsController.php:410
        • app/Http/Controllers/Frontend/News/NewsController.php:315
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
      • UpdateNewsVisitListener.php#27republica12.5supdate `news` set `view_count` = `view_count` + 1, `news`.`updated_at` = '2025-04-28 17:06:20' where `id` = 71207 and `status` = 1
        Bindings
        • 0: 2025-04-28 17:06:20
        • 1: 71207
        • 2: 1
        Backtrace
        • app/Listeners/UpdateNewsVisitListener.php:27
        • vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:473
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • vendor/laravel/framework/src/Illuminate/Routing/Route.php:264
      App\Models\News
      7News.php#?
      App\Models\Attachment
      5Attachment.php#?
      App\Models\Category
      1Category.php#?
      App\Models\Author
      1Author.php#?
          _token
          qhWAFfHs1WepmmfOGMwjZIuCAbgoqVxhSrkaGZGe
          subscriber_only_page
          https://newtest.myrepublica.com/amp/news/gunman-s-death-in-mass-shooting-at-northern-california-food...
          _previous
          array:1 [ "url" => "https://newtest.myrepublica.com/amp/news/gunman-s-death-in-mass-shooting-at-no...
          _flash
          array:2 [ "old" => [] "new" => [] ]
          path_info
          /amp/news/gunman-s-death-in-mass-shooting-at-northern-california-food-festival-ruled-suicide
          status_code
          200
          
          status_text
          OK
          format
          html
          content_type
          text/html; charset=UTF-8
          request_query
          []
          
          request_request
          []
          
          request_headers
          0 of 0
          array:22 [ "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.133.141.166" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "host" => array:1 [ 0 => "newtest.myrepublica.com" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "93762ccdda30118f-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-for" => array:1 [ 0 => "3.133.141.166" ] ]
          request_cookies
          []
          
          response_headers
          0 of 0
          array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Mon, 28 Apr 2025 11:21:22 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InZUWmNZYWh3Zis4VHc0ZTJhL1dVQlE9PSIsInZhbHVlIjoiOEovZGZ1bVJnN0ZKRHJkV2J6czVOblNGUzd6cWJteXg2K2x1cnFTRlVjZ3FNbVozdSsybGZDNERLMjFkaVZnaGsyTlVNMHRZak8xSy96Z0tSMjRkWEdzZFVRT1FrM3h0eHJoNTBJVnV3ZWdRVGlYaXErUVBvMjBpYXU3ZkNVSzYiLCJtYWMiOiIxOWI0YmYyMjEwNDlhZTJlYzYyMzVkNjg2OTkzZWE4OGY0Y2E0MzMxZmFlMjEwODdhMTQwODJkZWVlOThlNzBkIiwidGFnIjoiIn0%3D; expires=Tue, 28 Apr 2026 11:21:22 GMT; Max-Age=31536000; path=/; secure; samesite=laxXSRF-TOKEN=eyJpdiI6InZUWmNZYWh3Zis4VHc0ZTJhL1dVQlE9PSIsInZhbHVlIjoiOEovZGZ1bVJnN0ZKRHJkV2J6czVOblNGUzd6cWJteXg2K2x1cnFTRlVjZ3FNbVozdSsybGZDNERLMjFkaVZnaGsyTlVNM" 1 => "republica_session=eyJpdiI6IkErdlhxc2F6WXpMNWF5ZWFZUmtveXc9PSIsInZhbHVlIjoiUEVzNEtHWVM5aDdKMU95REtEUzhINi8rSGVkei9VUFhscHhPdXgyRnhZVEhGbzExWE1PcFlJcFF5YVk3eDRQdDhyaUtha1oxL1BMOVEzcWE4UW5ZSEc3ZFBFcG4xbzRMUjhGOS9VWFVTRUtnZWJ5emV1aXFLNzVPU2ZtNWZKRTYiLCJtYWMiOiI3MzhkMjRhN2QyNjYwNDg1NDQxOWI4MGQ2YjUzNTM0NzY1ZDkzZjE2YjQwMjU0OTExMDYyMGZiYzU2NWJhNDVkIiwidGFnIjoiIn0%3D; expires=Tue, 28 Apr 2026 11:21:22 GMT; Max-Age=31536000; path=/; secure; httponly; samesite=laxrepublica_session=eyJpdiI6IkErdlhxc2F6WXpMNWF5ZWFZUmtveXc9PSIsInZhbHVlIjoiUEVzNEtHWVM5aDdKMU95REtEUzhINi8rSGVkei9VUFhscHhPdXgyRnhZVEhGbzExWE1PcFlJcFF5YVk3eDRQdD" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InZUWmNZYWh3Zis4VHc0ZTJhL1dVQlE9PSIsInZhbHVlIjoiOEovZGZ1bVJnN0ZKRHJkV2J6czVOblNGUzd6cWJteXg2K2x1cnFTRlVjZ3FNbVozdSsybGZDNERLMjFkaVZnaGsyTlVNMHRZak8xSy96Z0tSMjRkWEdzZFVRT1FrM3h0eHJoNTBJVnV3ZWdRVGlYaXErUVBvMjBpYXU3ZkNVSzYiLCJtYWMiOiIxOWI0YmYyMjEwNDlhZTJlYzYyMzVkNjg2OTkzZWE4OGY0Y2E0MzMxZmFlMjEwODdhMTQwODJkZWVlOThlNzBkIiwidGFnIjoiIn0%3D; expires=Tue, 28-Apr-2026 11:21:22 GMT; path=/; secureXSRF-TOKEN=eyJpdiI6InZUWmNZYWh3Zis4VHc0ZTJhL1dVQlE9PSIsInZhbHVlIjoiOEovZGZ1bVJnN0ZKRHJkV2J6czVOblNGUzd6cWJteXg2K2x1cnFTRlVjZ3FNbVozdSsybGZDNERLMjFkaVZnaGsyTlVNM" 1 => "republica_session=eyJpdiI6IkErdlhxc2F6WXpMNWF5ZWFZUmtveXc9PSIsInZhbHVlIjoiUEVzNEtHWVM5aDdKMU95REtEUzhINi8rSGVkei9VUFhscHhPdXgyRnhZVEhGbzExWE1PcFlJcFF5YVk3eDRQdDhyaUtha1oxL1BMOVEzcWE4UW5ZSEc3ZFBFcG4xbzRMUjhGOS9VWFVTRUtnZWJ5emV1aXFLNzVPU2ZtNWZKRTYiLCJtYWMiOiI3MzhkMjRhN2QyNjYwNDg1NDQxOWI4MGQ2YjUzNTM0NzY1ZDkzZjE2YjQwMjU0OTExMDYyMGZiYzU2NWJhNDVkIiwidGFnIjoiIn0%3D; expires=Tue, 28-Apr-2026 11:21:22 GMT; path=/; secure; httponlyrepublica_session=eyJpdiI6IkErdlhxc2F6WXpMNWF5ZWFZUmtveXc9PSIsInZhbHVlIjoiUEVzNEtHWVM5aDdKMU95REtEUzhINi8rSGVkei9VUFhscHhPdXgyRnhZVEhGbzExWE1PcFlJcFF5YVk3eDRQdD" ] ]
          session_attributes
          0 of 0
          array:4 [ "_token" => "qhWAFfHs1WepmmfOGMwjZIuCAbgoqVxhSrkaGZGe" "subscriber_only_page" => "https://newtest.myrepublica.com/amp/news/gunman-s-death-in-mass-shooting-at-northern-california-food-festival-ruled-suicide" "_previous" => array:1 [ "url" => "https://newtest.myrepublica.com/amp/news/gunman-s-death-in-mass-shooting-at-northern-california-food-festival-ruled-suicide" ] "_flash" => array:2 [ "old" => [] "new" => [] ] ]
          ClearShow all
          Date ↕MethodURLData
          #12025-04-28 17:06:22GET/amp/news/gunman-s-death-in-mass-shooting-at-northern-california-food-festival-ruled-suicide11014